home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 01 - 1984 & 1985 / 01.12 Nov 85.sit / 01.12 Nov 85 / asm / midi source code 1-12 / MIDICode
MacBinary  |  1985-10-13  |  12.6 KB  |  [TEXT/EDIT]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sun Oct 13 17:52:43 1985, modified Sun Oct 13 17:52:43 1985, creator Macintosh Edit, type ASCII, 12168 bytes "MIDICode" , at 0x3008 490 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[EDIT]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 08 4d 49 44 49 43 6f | 64 65 00 00 00 00 00 00 |..MIDICo|de......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......|
|00000050| 00 00 00 00 00 2f 88 00 | 00 01 ea 99 d5 ea 2b 99 |...../..|......+.|
|00000060| d5 ea 2b 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..+.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 52 b6 00 00 |........|....R...|
|00000080| 3b 20 4d 49 44 49 20 50 | 4f 52 54 20 52 4f 55 54 |; MIDI P|ORT ROUT|
|00000090| 49 4e 45 53 0d 3b 20 63 | 6f 70 79 72 69 67 68 74 |INES.; c|opyright|
|000000a0| 20 4b 69 72 6b 20 41 75 | 73 74 69 6e 20 31 39 38 | Kirk Au|stin 198|
|000000b0| 35 0d 0d 3b 20 54 72 61 | 6e 73 6d 69 74 20 61 6e |5..; Tra|nsmit an|
|000000c0| 64 20 52 65 63 65 69 76 | 65 20 71 75 65 75 65 20 |d Receiv|e queue |
|000000d0| 6c 65 6e 67 74 68 20 65 | 71 75 61 74 65 73 0d 54 |length e|quates.T|
|000000e0| 78 51 53 69 7a 65 09 09 | 45 51 55 09 24 31 30 30 |xQSize..|EQU.$100|
|000000f0| 0d 52 78 51 53 69 7a 65 | 09 09 45 51 55 09 24 31 |.RxQSize|..EQU.$1|
|00000100| 30 30 0d 0d 3b 20 53 65 | 72 69 61 6c 20 43 68 69 |00..; Se|rial Chi|
|00000110| 70 20 41 64 64 72 65 73 | 73 65 73 2c 20 6f 66 66 |p Addres|ses, off|
|00000120| 73 65 74 73 2c 20 61 6e | 64 20 73 79 73 74 65 6d |sets, an|d system|
|00000130| 20 65 71 75 61 74 65 73 | 0d 73 63 63 52 42 61 73 | equates|.sccRBas|
|00000140| 65 09 45 51 55 09 24 39 | 46 46 46 46 38 0d 73 63 |e.EQU.$9|FFFF8.sc|
|00000150| 63 57 42 61 73 65 09 45 | 51 55 09 24 42 46 46 46 |cWBase.E|QU.$BFFF|
|00000160| 46 39 0d 4c 76 6c 32 44 | 54 09 09 45 51 55 09 24 |F9.Lvl2D|T..EQU.$|
|00000170| 31 42 32 0d 61 44 61 74 | 61 09 09 45 51 55 09 36 |1B2.aDat|a..EQU.6|
|00000180| 0d 61 43 74 6c 09 09 45 | 51 55 09 32 0d 62 44 61 |.aCtl..E|QU.2.bDa|
|00000190| 74 61 09 09 45 51 55 09 | 34 0d 62 43 74 6c 09 09 |ta..EQU.|4.bCtl..|
|000001a0| 45 51 55 09 30 0d 54 42 | 45 09 09 45 51 55 09 32 |EQU.0.TB|E..EQU.2|
|000001b0| 0d 43 75 72 72 65 6e 74 | 41 35 09 45 51 55 09 24 |.Current|A5.EQU.$|
|000001c0| 39 30 34 0d 0d 3b 20 54 | 68 69 73 20 69 73 20 61 |904..; T|his is a|
|000001d0| 6e 20 65 78 61 6d 70 6c | 65 20 6f 66 20 68 6f 77 |n exampl|e of how|
|000001e0| 20 74 6f 20 75 73 65 20 | 74 68 65 20 72 6f 75 74 | to use |the rout|
|000001f0| 69 6e 65 73 2e 0d 3b 20 | 49 66 20 74 68 69 73 20 |ines..; |If this |
|00000200| 77 65 72 65 20 70 6c 61 | 63 65 64 20 69 6e 20 79 |were pla|ced in y|
|00000210| 6f 75 72 20 65 76 65 6e | 74 20 6c 6f 6f 70 20 79 |our even|t loop y|
|00000220| 6f 75 72 20 61 70 70 6c | 69 63 61 74 69 6f 6e 20 |our appl|ication |
|00000230| 77 6f 75 6c 64 20 72 65 | 63 65 69 76 65 0d 3b 20 |would re|ceive.; |
|00000240| 4d 49 44 49 20 64 61 74 | 61 20 61 6e 64 20 65 63 |MIDI dat|a and ec|
|00000250| 68 6f 20 69 74 20 62 61 | 63 6b 20 6f 75 74 2e 0d |ho it ba|ck out..|
|00000260| 3b 0d 3b 4d 49 44 49 54 | 68 72 75 0d 3b 09 43 4c |;.;MIDIT|hru.;.CL|
|00000270| 52 09 09 2d 28 53 50 29 | 09 09 09 3b 20 63 6c 65 |R..-(SP)|...; cle|
|00000280| 61 72 20 73 70 61 63 65 | 20 66 6f 72 20 72 65 73 |ar space| for res|
|00000290| 75 6c 74 0d 3b 09 42 53 | 52 09 09 52 78 4d 49 44 |ult.;.BS|R..RxMID|
|000002a0| 49 09 09 09 3b 20 66 65 | 74 63 68 20 64 61 74 61 |I...; fe|tch data|
|000002b0| 0d 3b 09 4d 4f 56 45 09 | 09 28 53 50 29 2b 2c 44 |.;.MOVE.|.(SP)+,D|
|000002c0| 30 0d 3b 09 43 4d 50 49 | 09 09 23 24 46 46 46 46 |0.;.CMPI|..#$FFFF|
|000002d0| 2c 44 30 09 09 3b 20 61 | 6e 79 20 62 79 74 65 73 |,D0..; a|ny bytes|
|000002e0| 20 61 76 61 69 6c 61 62 | 6c 65 3f 0d 3b 09 42 45 | availab|le?.;.BE|
|000002f0| 51 09 09 4e 6f 4d 49 44 | 49 09 09 09 3b 20 69 66 |Q..NoMID|I...; if|
|00000300| 20 6e 6f 74 2c 20 65 78 | 69 74 0d 3b 09 4d 4f 56 | not, ex|it.;.MOV|
|00000310| 45 09 09 44 30 2c 2d 28 | 53 50 29 09 09 3b 20 69 |E..D0,-(|SP)..; i|
|00000320| 66 20 73 6f 2c 20 74 72 | 61 6e 73 6d 69 74 20 74 |f so, tr|ansmit t|
|00000330| 68 65 6d 0d 3b 09 42 53 | 52 09 09 54 78 4d 49 44 |hem.;.BS|R..TxMID|
|00000340| 49 0d 3b 09 42 52 41 09 | 09 4d 49 44 49 54 68 72 |I.;.BRA.|.MIDIThr|
|00000350| 75 09 09 3b 20 63 68 65 | 63 6b 20 66 6f 72 20 6d |u..; che|ck for m|
|00000360| 6f 72 65 0d 3b 4e 6f 4d | 49 44 49 0d 3b 0d 3b 20 |ore.;NoM|IDI.;.; |
|00000370| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000380| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 0d 3b 20 54 68 69 |--------|-..; Thi|
|000003c0| 73 20 73 65 63 74 69 6f | 6e 20 63 6f 6e 74 61 69 |s sectio|n contai|
|000003d0| 6e 73 20 74 68 65 20 6e | 65 63 65 73 73 61 72 79 |ns the n|ecessary|
|000003e0| 20 72 6f 75 74 69 6e 65 | 73 20 66 6f 72 20 4d 49 | routine|s for MI|
|000003f0| 44 49 0d 3b 0d 3b 20 54 | 68 65 73 65 20 61 72 65 |DI.;.; T|hese are|
|00000400| 20 74 68 65 20 69 6e 69 | 74 69 61 6c 69 7a 61 74 | the ini|tializat|
|00000410| 69 6f 6e 20 72 6f 75 74 | 69 6e 65 73 20 77 68 69 |ion rout|ines whi|
|00000420| 63 68 20 73 68 6f 75 6c | 64 20 62 65 20 63 61 6c |ch shoul|d be cal|
|00000430| 6c 65 64 20 77 68 65 6e | 20 79 6f 75 20 0d 3b 20 |led when| you .; |
|00000440| 69 6e 69 74 69 61 6c 69 | 7a 65 20 71 75 69 63 6b |initiali|ze quick|
|00000450| 64 72 61 77 20 61 6e 64 | 20 74 68 65 20 76 61 72 |draw and| the var|
|00000460| 69 6f 75 73 20 6d 61 6e | 61 67 65 72 73 2e 20 20 |ious man|agers. |
|00000470| 43 61 6c 6c 20 53 43 43 | 49 6e 69 74 41 20 74 6f |Call SCC|InitA to|
|00000480| 20 75 73 65 20 74 68 65 | 0d 3b 20 6d 6f 64 65 6d | use the|.; modem|
|00000490| 20 70 6f 72 74 2c 20 61 | 6e 64 20 53 43 43 49 6e | port, a|nd SCCIn|
|000004a0| 69 74 42 20 74 6f 20 75 | 73 65 20 74 68 65 20 70 |itB to u|se the p|
|000004b0| 72 69 6e 74 65 72 20 70 | 6f 72 74 2e 0d 0d 53 43 |rinter p|ort...SC|
|000004c0| 43 49 6e 69 74 41 0d 09 | 4d 4f 56 45 09 09 23 61 |CInitA..|MOVE..#a|
|000004d0| 43 74 6c 2c 43 74 6c 4f | 66 66 73 65 74 28 41 35 |Ctl,CtlO|ffset(A5|
|000004e0| 29 09 3b 20 73 65 74 20 | 75 70 20 67 6c 6f 62 61 |).; set |up globa|
|000004f0| 6c 73 20 66 6f 72 20 43 | 68 6e 20 41 0d 09 4d 4f |ls for C|hn A..MO|
|00000500| 56 45 09 09 23 61 44 61 | 74 61 2c 44 61 74 61 4f |VE..#aDa|ta,DataO|
|00000510| 66 66 73 65 74 28 41 35 | 29 0d 09 4d 4f 56 45 2e |ffset(A5|)..MOVE.|
|00000520| 42 09 09 23 25 31 30 30 | 30 30 30 30 30 2c 43 68 |B..#%100|00000,Ch|
|00000530| 6e 52 65 73 65 74 28 41 | 35 29 0d 09 4d 4f 56 45 |nReset(A|5)..MOVE|
|00000540| 09 09 23 32 34 2c 52 78 | 49 6e 74 4f 66 66 73 65 |..#24,Rx|IntOffse|
|00000550| 74 28 41 35 29 0d 09 4d | 4f 56 45 09 09 23 31 36 |t(A5)..M|OVE..#16|
|00000560| 2c 54 78 49 6e 74 4f 66 | 66 73 65 74 28 41 35 29 |,TxIntOf|fset(A5)|
|00000570| 0d 09 4d 4f 56 45 09 09 | 23 32 38 2c 53 70 65 63 |..MOVE..|#28,Spec|
|00000580| 52 65 63 43 6f 6e 64 28 | 41 35 29 0d 09 42 52 41 |RecCond(|A5)..BRA|
|00000590| 09 09 53 43 43 49 6e 69 | 74 0d 0d 53 43 43 49 6e |..SCCIni|t..SCCIn|
|000005a0| 69 74 42 0d 09 4d 4f 56 | 45 09 09 23 62 43 74 6c |itB..MOV|E..#bCtl|
|000005b0| 2c 43 74 6c 4f 66 66 73 | 65 74 28 41 35 29 09 3b |,CtlOffs|et(A5).;|
|000005c0| 20 73 65 74 20 75 70 20 | 67 6c 6f 62 61 6c 73 20 | set up |globals |
|000005d0| 66 6f 72 20 43 68 6e 20 | 42 0d 09 4d 4f 56 45 09 |for Chn |B..MOVE.|
|000005e0| 09 23 62 44 61 74 61 2c | 44 61 74 61 4f 66 66 73 |.#bData,|DataOffs|
|000005f0| 65 74 28 41 35 29 0d 09 | 4d 4f 56 45 2e 42 09 09 |et(A5)..|MOVE.B..|
|00000600| 23 25 30 31 30 30 30 30 | 30 30 2c 43 68 6e 52 65 |#%010000|00,ChnRe|
|00000610| 73 65 74 28 41 35 29 0d | 09 4d 4f 56 45 09 09 23 |set(A5).|.MOVE..#|
|00000620| 38 2c 52 78 49 6e 74 4f | 66 66 73 65 74 28 41 35 |8,RxIntO|ffset(A5|
|00000630| 29 0d 09 4d 4f 56 45 09 | 09 23 30 2c 54 78 49 6e |)..MOVE.|.#0,TxIn|
|00000640| 74 4f 66 66 73 65 74 28 | 41 35 29 0d 09 4d 4f 56 |tOffset(|A5)..MOV|
|00000650| 45 09 09 23 31 32 2c 53 | 70 65 63 52 65 63 43 6f |E..#12,S|pecRecCo|
|00000660| 6e 64 28 41 35 29 0d 0d | 53 43 43 49 6e 69 74 0d |nd(A5)..|SCCInit.|
|00000670| 09 4d 4f 56 45 09 09 53 | 52 2c 2d 28 53 50 29 09 |.MOVE..S|R,-(SP).|
|00000680| 09 3b 20 53 61 76 65 20 | 69 6e 74 65 72 72 75 70 |.; Save |interrup|
|00000690| 74 73 0d 09 4d 4f 56 45 | 4d 2e 4c 09 09 44 30 2f |ts..MOVE|M.L..D0/|
|000006a0| 41 30 2d 41 31 2c 2d 28 | 53 50 29 09 09 3b 20 53 |A0-A1,-(|SP)..; S|
|000006b0| 61 76 65 20 72 65 67 69 | 73 74 65 72 73 0d 09 4f |ave regi|sters..O|
|000006c0| 52 49 09 09 23 24 30 33 | 30 30 2c 53 52 09 09 3b |RI..#$03|00,SR..;|
|000006d0| 20 44 69 73 61 62 6c 65 | 20 69 6e 74 65 72 72 75 | Disable| interru|
|000006e0| 70 74 73 0d 09 0d 09 4d | 4f 56 45 2e 4c 09 09 23 |pts....M|OVE.L..#|
|000006f0| 73 63 63 52 42 61 73 65 | 2c 41 31 09 09 3b 20 47 |sccRBase|,A1..; G|
|00000700| 65 74 20 62 61 73 65 20 | 52 65 61 64 20 61 64 64 |et base |Read add|
|00000710| 72 65 73 73 0d 09 41 44 | 44 09 09 43 74 6c 4f 66 |ress..AD|D..CtlOf|
|00000720| 66 73 65 74 28 41 35 29 | 2c 41 31 09 3b 20 41 64 |fset(A5)|,A1.; Ad|
|00000730| 64 20 6f 66 66 73 65 74 | 20 66 6f 72 20 63 6f 6e |d offset| for con|
|00000740| 74 72 6f 6c 0d 09 4d 4f | 56 45 2e 42 09 09 28 41 |trol..MO|VE.B..(A|
|00000750| 31 29 2c 44 30 09 09 09 | 3b 20 44 75 6d 6d 79 20 |1),D0...|; Dummy |
|00000760| 72 65 61 64 0d 09 4d 4f | 56 45 2e 4c 09 09 28 53 |read..MO|VE.L..(S|
|00000770| 50 29 2c 28 53 50 29 09 | 09 3b 20 44 65 6c 61 79 |P),(SP).|.; Delay|
|00000780| 0d 09 4d 4f 56 45 2e 4c | 09 09 23 73 63 63 57 42 |..MOVE.L|..#sccWB|
|00000790| 61 73 65 2c 41 30 09 09 | 3b 20 47 65 74 20 62 61 |ase,A0..|; Get ba|
|000007a0| 73 65 20 57 72 69 74 65 | 20 61 64 64 72 65 73 73 |se Write| address|
|000007b0| 0d 09 41 44 44 09 09 43 | 74 6c 4f 66 66 73 65 74 |..ADD..C|tlOffset|
|000007c0| 28 41 35 29 2c 41 30 09 | 3b 20 41 64 64 20 6f 66 |(A5),A0.|; Add of|
|000007d0| 66 73 65 74 20 66 6f 72 | 20 63 6f 6e 74 72 6f 6c |fset for| control|
|000007e0| 0d 09 4d 4f 56 45 2e 42 | 09 09 23 39 2c 28 41 30 |..MOVE.B|..#9,(A0|
|000007f0| 29 09 09 09 3b 20 70 6f | 69 6e 74 65 72 20 66 6f |)...; po|inter fo|
|00000800| 72 20 53 43 43 20 72 65 | 67 20 39 0d 09 4d 4f 56 |r SCC re|g 9..MOV|
|00000810| 45 2e 4c 09 09 28 53 50 | 29 2c 28 53 50 29 09 09 |E.L..(SP|),(SP)..|
|00000820| 3b 20 44 65 6c 61 79 0d | 09 4d 4f 56 45 2e 42 09 |; Delay.|.MOVE.B.|
|00000830| 09 43 68 6e 52 65 73 65 | 74 28 41 35 29 2c 28 41 |.ChnRese|t(A5),(A|
|00000840| 30 29 09 3b 20 52 65 73 | 65 74 20 63 68 61 6e 6e |0).; Res|et chann|
|00000850| 65 6c 0d 09 4d 4f 56 45 | 2e 4c 09 09 28 53 50 29 |el..MOVE|.L..(SP)|
|00000860| 2c 28 53 50 29 09 09 3b | 20 44 65 6c 61 79 0d 09 |,(SP)..;| Delay..|
|00000870| 4d 4f 56 45 2e 42 09 09 | 23 34 2c 28 41 30 29 09 |MOVE.B..|#4,(A0).|
|00000880| 09 09 3b 20 70 6f 69 6e | 74 65 72 20 66 6f 72 20 |..; poin|ter for |
|00000890| 53 43 43 20 72 65 67 20 | 34 0d 09 4d 4f 56 45 2e |SCC reg |4..MOVE.|
|000008a0| 4c 09 09 28 53 50 29 2c | 28 53 50 29 09 09 3b 20 |L..(SP),|(SP)..; |
|000008b0| 44 65 6c 61 79 0d 3b 20 | 54 68 69 73 20 69 73 20 |Delay.; |This is |
|000008c0| 77 68 65 72 65 20 79 6f | 75 20 64 65 74 65 72 6d |where yo|u determ|
|000008d0| 69 6e 65 20 74 68 65 20 | 65 78 74 65 72 6e 61 6c |ine the |external|
|000008e0| 20 63 6c 6f 63 6b 20 72 | 61 74 65 0d 3b 20 25 30 | clock r|ate.; %0|
|000008f0| 31 30 30 30 31 30 30 20 | 3d 20 35 30 30 4b 0d 3b |1000100 |= 500K.;|
|00000900| 20 25 31 30 30 30 30 31 | 30 30 20 3d 20 31 20 4d | %100001|00 = 1 M|
|00000910| 65 67 0d 3b 20 25 31 31 | 30 30 30 31 30 30 20 3d |eg.; %11|000100 =|
|00000920| 20 32 20 4d 65 67 0d 09 | 4d 4f 56 45 2e 42 09 09 | 2 Meg..|MOVE.B..|
|00000930| 23 25 30 31 30 30 30 31 | 30 30 2c 28 41 30 29 09 |#%010001|00,(A0).|
|00000940| 09 3b 20 31 36 78 20 63 | 6c 6f 63 6b 2c 20 31 20 |.; 16x c|lock, 1 |
|00000950| 73 74 6f 70 20 62 69 74 | 0d 09 4d 4f 56 45 2e 4c |stop bit|..MOVE.L|
|00000960| 09 09 28 53 50 29 2c 28 | 53 50 29 09 09 3b 20 44 |..(SP),(|SP)..; D|
|00000970| 65 6c 61 79 0d 09 4d 4f | 56 45 2e 42 09 09 23 31 |elay..MO|VE.B..#1|
|00000980| 2c 28 41 30 29 09 09 09 | 3b 20 70 6f 69 6e 74 65 |,(A0)...|; pointe|
|00000990| 72 20 66 6f 72 20 53 43 | 43 20 72 65 67 20 31 0d |r for SC|C reg 1.|
|000009a0| 09 4d 4f 56 45 2e 4c 09 | 09 28 53 50 29 2c 28 53 |.MOVE.L.|.(SP),(S|
|000009b0| 50 29 09 09 3b 20 44 65 | 6c 61 79 0d 09 4d 4f 56 |P)..; De|lay..MOV|
|000009c0| 45 2e 42 09 09 23 25 30 | 30 30 30 30 30 30 30 2c |E.B..#%0|0000000,|
|000009d0| 28 41 30 29 09 09 3b 20 | 4e 6f 20 57 2f 52 65 71 |(A0)..; |No W/Req|
|000009e0| 0d 09 4d 4f 56 45 2e 4c | 09 09 28 53 50 29 2c 28 |..MOVE.L|..(SP),(|
|000009f0| 53 50 29 09 09 3b 20 44 | 65 6c 61 79 0d 09 4d 4f |SP)..; D|elay..MO|
|00000a00| 56 45 2e 42 09 09 23 33 | 2c 28 41 30 29 09 09 09 |VE.B..#3|,(A0)...|
|00000a10| 3b 20 70 6f 69 6e 74 65 | 72 20 66 6f 72 20 53 43 |; pointe|r for SC|
|00000a20| 43 20 72 65 67 20 33 0d | 09 4d 4f 56 45 2e 4c 09 |C reg 3.|.MOVE.L.|
|00000a30| 09 28 53 50 29 2c 28 53 | 50 29 09 09 3b 20 44 65 |.(SP),(S|P)..; De|
|00000a40| 6c 61 79 0d 09 4d 4f 56 | 45 2e 42 09 09 23 25 30 |lay..MOV|E.B..#%0|
|00000a50| 30 30 30 30 30 30 30 2c | 28 41 30 29 09 09 3b 20 |0000000,|(A0)..; |
|00000a60| 54 75 72 6e 20 6f 66 66 | 20 52 78 0d 09 4d 4f 56 |Turn off| Rx..MOV|
|00000a70| 45 2e 4c 09 09 28 53 50 | 29 2c 28 53 50 29 09 09 |E.L..(SP|),(SP)..|
|00000a80| 3b 20 44 65 6c 61 79 0d | 09 4d 4f 56 45 2e 42 09 |; Delay.|.MOVE.B.|
|00000a90| 09 23 35 2c 28 41 30 29 | 09 09 09 3b 20 70 6f 69 |.#5,(A0)|...; poi|
|00000aa0| 6e 74 65 72 20 66 6f 72 | 20 53 43 43 20 72 65 67 |nter for| SCC reg|
|00000ab0| 20 35 0d 09 4d 4f 56 45 | 2e 4c 09 09 28 53 50 29 | 5..MOVE|.L..(SP)|
|00000ac0| 2c 28 53 50 29 09 09 3b | 20 44 65 6c 61 79 0d 09 |,(SP)..;| Delay..|
|00000ad0| 4d 4f 56 45 2e 42 09 09 | 23 25 30 30 30 30 30 30 |MOVE.B..|#%000000|
|00000ae0| 30 30 2c 28 41 30 29 09 | 09 3b 20 54 75 72 6e 20 |00,(A0).|.; Turn |
|00000af0| 6f 66 66 20 54 78 0d 09 | 4d 4f 56 45 2e 4c 09 09 |off Tx..|MOVE.L..|
|00000b00| 28 53 50 29 2c 28 53 50 | 29 09 09 3b 20 44 65 6c |(SP),(SP|)..; Del|
|00000b10| 61 79 0d 09 4d 4f 56 45 | 2e 42 09 09 23 31 31 2c |ay..MOVE|.B..#11,|
|00000b20| 28 41 30 29 09 09 3b 20 | 70 6f 69 6e 74 65 72 20 |(A0)..; |pointer |
|00000b30| 66 6f 72 20 53 43 43 20 | 72 65 67 20 31 31 0d 09 |for SCC |reg 11..|
|00000b40| 4d 4f 56 45 2e 4c 09 09 | 28 53 50 29 2c 28 53 50 |MOVE.L..|(SP),(SP|
|00000b50| 29 09 09 3b 20 44 65 6c | 61 79 0d 09 4d 4f 56 45 |)..; Del|ay..MOVE|
|00000b60| 2e 42 09 09 23 25 30 30 | 31 30 31 30 30 30 2c 28 |.B..#%00|101000,(|
|00000b70| 41 30 29 09 09 3b 20 4d | 61 6b 65 20 54 52 78 43 |A0)..; M|ake TRxC|
|00000b80| 20 63 6c 6f 63 6b 20 73 | 6f 75 72 63 65 0d 09 4d | clock s|ource..M|
|00000b90| 4f 56 45 2e 4c 09 09 28 | 53 50 29 2c 28 53 50 29 |OVE.L..(|SP),(SP)|
|00000ba0| 09 09 3b 20 44 65 6c 61 | 79 0d 09 4d 4f 56 45 2e |..; Dela|y..MOVE.|
|00000bb0| 42 09 09 23 31 34 2c 28 | 41 30 29 09 09 3b 20 70 |B..#14,(|A0)..; p|
|00000bc0| 6f 69 6e 74 65 72 20 66 | 6f 72 20 53 43 43 20 72 |ointer f|or SCC r|
|00000bd0| 65 67 20 31 34 0d 09 4d | 4f 56 45 2e 4c 09 09 28 |eg 14..M|OVE.L..(|
|00000be0| 53 50 29 2c 28 53 50 29 | 09 09 3b 20 44 65 6c 61 |SP),(SP)|..; Dela|
|00000bf0| 79 0d 09 4d 4f 56 45 2e | 42 09 09 23 25 30 30 30 |y..MOVE.|B..#%000|
|00000c00| 30 30 30 30 30 2c 28 41 | 30 29 09 09 3b 20 44 69 |00000,(A|0)..; Di|
|00000c10| 73 61 62 6c 65 20 42 52 | 47 65 6e 0d 09 4d 4f 56 |sable BR|Gen..MOV|
|00000c20| 45 2e 4c 09 09 28 53 50 | 29 2c 28 53 50 29 09 09 |E.L..(SP|),(SP)..|
|00000c30| 3b 20 44 65 6c 61 79 0d | 09 4d 4f 56 45 2e 42 09 |; Delay.|.MOVE.B.|
|00000c40| 09 23 33 2c 28 41 30 29 | 09 09 09 3b 20 70 6f 69 |.#3,(A0)|...; poi|
|00000c50| 6e 74 65 72 20 66 6f 72 | 20 53 43 43 20 72 65 67 |nter for| SCC reg|
|00000c60| 20 33 0d 09 4d 4f 56 45 | 2e 4c 09 09 28 53 50 29 | 3..MOVE|.L..(SP)|
|00000c70| 2c 28 53 50 29 09 09 3b | 20 44 65 6c 61 79 0d 09 |,(SP)..;| Delay..|
|00000c80| 4d 4f 56 45 2e 42 09 09 | 23 25 31 31 30 30 30 30 |MOVE.B..|#%110000|
|00000c90| 30 31 2c 28 41 30 29 09 | 09 3b 20 45 6e 61 62 6c |01,(A0).|.; Enabl|
|00000ca0| 65 20 52 78 0d 09 4d 4f | 56 45 2e 4c 09 09 28 53 |e Rx..MO|VE.L..(S|
|00000cb0| 50 29 2c 28 53 50 29 09 | 09 3b 20 44 65 6c 61 79 |P),(SP).|.; Delay|
|00000cc0| 0d 09 4d 4f 56 45 2e 42 | 09 09 23 35 2c 28 41 30 |..MOVE.B|..#5,(A0|
|00000cd0| 29 09 09 09 3b 20 70 6f | 69 6e 74 65 72 20 66 6f |)...; po|inter fo|
|00000ce0| 72 20 53 43 43 20 72 65 | 67 20 35 0d 09 4d 4f 56 |r SCC re|g 5..MOV|
|00000cf0| 45 2e 4c 09 09 28 53 50 | 29 2c 28 53 50 29 09 09 |E.L..(SP|),(SP)..|
|00000d00| 3b 20 44 65 6c 61 79 0d | 09 4d 4f 56 45 2e 42 09 |; Delay.|.MOVE.B.|
|00000d10| 09 23 25 30 31 31 30 31 | 30 31 30 2c 28 41 30 29 |.#%01101|010,(A0)|
|00000d20| 09 09 3b 20 45 6e 61 62 | 6c 65 20 54 78 20 61 6e |..; Enab|le Tx an|
|00000d30| 64 20 64 72 69 76 65 72 | 73 0d 09 4d 4f 56 45 2e |d driver|s..MOVE.|
|00000d40| 4c 09 09 28 53 50 29 2c | 28 53 50 29 09 09 3b 20 |L..(SP),|(SP)..; |
|00000d50| 44 65 6c 61 79 0d 09 4d | 4f 56 45 2e 42 09 09 23 |Delay..M|OVE.B..#|
|00000d60| 31 35 2c 28 41 30 29 09 | 09 3b 20 70 6f 69 6e 74 |15,(A0).|.; point|
|00000d70| 65 72 20 66 6f 72 20 53 | 43 43 20 72 65 67 20 31 |er for S|CC reg 1|
|00000d80| 35 0d 09 4d 4f 56 45 2e | 4c 09 09 28 53 50 29 2c |5..MOVE.|L..(SP),|
|00000d90| 28 53 50 29 09 09 3b 20 | 44 65 6c 61 79 0d 09 4d |(SP)..; |Delay..M|
|00000da0| 4f 56 45 2e 42 09 09 23 | 25 30 30 30 30 31 30 30 |OVE.B..#|%0000100|
|00000db0| 30 2c 28 41 30 29 09 09 | 3b 20 45 6e 61 62 6c 65 |0,(A0)..|; Enable|
|00000dc0| 20 44 43 44 20 69 6e 74 | 20 66 6f 72 20 6d 6f 75 | DCD int| for mou|
|00000dd0| 73 65 0d 09 4d 4f 56 45 | 2e 4c 09 09 28 53 50 29 |se..MOVE|.L..(SP)|
|00000de0| 2c 28 53 50 29 09 09 3b | 20 44 65 6c 61 79 0d 09 |,(SP)..;| Delay..|
|00000df0| 4d 4f 56 45 2e 42 09 09 | 23 30 2c 28 41 30 29 09 |MOVE.B..|#0,(A0).|
|00000e00| 09 09 3b 20 70 6f 69 6e | 74 65 72 20 66 6f 72 20 |..; poin|ter for |
|00000e10| 53 43 43 20 72 65 67 20 | 30 0d 09 4d 4f 56 45 2e |SCC reg |0..MOVE.|
|00000e20| 4c 09 09 28 53 50 29 2c | 28 53 50 29 09 09 3b 20 |L..(SP),|(SP)..; |
|00000e30| 44 65 6c 61 79 0d 09 4d | 4f 56 45 2e 42 09 09 23 |Delay..M|OVE.B..#|
|00000e40| 25 30 30 30 31 30 30 30 | 30 2c 28 41 30 29 09 09 |%0001000|0,(A0)..|
|00000e50| 3b 20 52 65 73 65 74 20 | 45 58 54 2f 53 54 41 54 |; Reset |EXT/STAT|
|00000e60| 55 53 0d 09 4d 4f 56 45 | 2e 4c 09 09 28 53 50 29 |US..MOVE|.L..(SP)|
|00000e70| 2c 28 53 50 29 09 09 3b | 20 44 65 6c 61 79 0d 09 |,(SP)..;| Delay..|
|00000e80| 4d 4f 56 45 2e 42 09 09 | 23 30 2c 28 41 30 29 09 |MOVE.B..|#0,(A0).|
|00000e90| 09 09 3b 20 70 6f 69 6e | 74 65 72 20 66 6f 72 20 |..; poin|ter for |
|00000ea0| 53 43 43 20 72 65 67 20 | 30 0d 09 4d 4f 56 45 2e |SCC reg |0..MOVE.|
|00000eb0| 4c 09 09 28 53 50 29 2c | 28 53 50 29 09 09 3b 20 |L..(SP),|(SP)..; |
|00000ec0| 44 65 6c 61 79 0d 09 4d | 4f 56 45 2e 42 09 09 23 |Delay..M|OVE.B..#|
|00000ed0| 25 30 30 30 31 30 30 30 | 30 2c 28 41 30 29 09 09 |%0001000|0,(A0)..|
|00000ee0| 3b 20 52 65 73 65 74 20 | 45 58 54 2f 53 54 41 54 |; Reset |EXT/STAT|
|00000ef0| 55 53 20 61 67 61 69 6e | 0d 09 4d 4f 56 45 2e 4c |US again|..MOVE.L|
|00000f00| 09 09 28 53 50 29 2c 28 | 53 50 29 09 09 3b 20 44 |..(SP),(|SP)..; D|
|00000f10| 65 6c 61 79 0d 09 4d 4f | 56 45 2e 42 09 09 23 31 |elay..MO|VE.B..#1|
|00000f20| 2c 28 41 30 29 09 09 09 | 3b 20 70 6f 69 6e 74 65 |,(A0)...|; pointe|
|00000f30| 72 20 66 6f 72 20 53 43 | 43 20 72 65 67 20 31 0d |r for SC|C reg 1.|
|00000f40| 09 4d 4f 56 45 2e 4c 09 | 09 28 53 50 29 2c 28 53 |.MOVE.L.|.(SP),(S|
|00000f50| 50 29 09 09 3b 20 44 65 | 6c 61 79 0d 09 4d 4f 56 |P)..; De|lay..MOV|
|00000f60| 45 2e 42 09 09 23 25 30 | 30 30 31 30 30 31 31 2c |E.B..#%0|0010011,|
|00000f70| 28 41 30 29 09 09 3b 20 | 45 6e 61 62 6c 65 20 69 |(A0)..; |Enable i|
|00000f80| 6e 74 65 72 72 75 70 74 | 73 0d 09 4d 4f 56 45 2e |nterrupt|s..MOVE.|
|00000f90| 4c 09 09 28 53 50 29 2c | 28 53 50 29 09 09 3b 20 |L..(SP),|(SP)..; |
|00000fa0| 44 65 6c 61 79 0d 09 4d | 4f 56 45 2e 42 09 09 23 |Delay..M|OVE.B..#|
|00000fb0| 39 2c 28 41 30 29 09 09 | 09 3b 20 70 6f 69 6e 74 |9,(A0)..|.; point|
|00000fc0| 65 72 20 66 6f 72 20 53 | 43 43 20 72 65 67 20 39 |er for S|CC reg 9|
|00000fd0| 0d 09 4d 4f 56 45 2e 4c | 09 09 28 53 50 29 2c 28 |..MOVE.L|..(SP),(|
|00000fe0| 53 50 29 09 09 3b 20 44 | 65 6c 61 79 0d 09 4d 4f |SP)..; D|elay..MO|
|00000ff0| 56 45 2e 42 09 09 23 25 | 30 30 30 30 31 30 31 30 |VE.B..#%|00001010|
|00001000| 2c 28 41 30 29 09 09 3b | 20 53 65 74 20 6d 61 73 |,(A0)..;| Set mas|
|00001010| 74 65 72 20 69 6e 74 20 | 65 6e 61 62 6c 65 0d 09 |ter int |enable..|
|00001020| 4d 4f 56 45 2e 4c 09 09 | 28 53 50 29 2c 28 53 50 |MOVE.L..|(SP),(SP|
|00001030| 29 09 09 3b 20 44 65 6c | 61 79 0d 09 0d 09 4d 4f |)..; Del|ay....MO|
|00001040| 56 45 2e 4c 09 09 23 4c | 76 6c 32 44 54 2c 41 30 |VE.L..#L|vl2DT,A0|
|00001050| 09 09 3b 20 67 65 74 20 | 64 69 73 70 61 74 63 68 |..; get |dispatch|
|00001060| 20 74 61 62 6c 65 20 70 | 6f 69 6e 74 65 72 0d 09 | table p|ointer..|
|00001070| 4d 4f 56 45 09 09 52 78 | 49 6e 74 4f 66 66 73 65 |MOVE..Rx|IntOffse|
|00001080| 74 28 41 35 29 2c 44 30 | 09 3b 20 67 65 74 20 6f |t(A5),D0|.; get o|
|00001090| 66 66 73 65 74 20 74 6f | 20 52 78 20 76 65 63 74 |ffset to| Rx vect|
|000010a0| 6f 72 0d 09 4c 45 41 09 | 09 52 78 49 6e 74 48 61 |or..LEA.|.RxIntHa|
|000010b0| 6e 64 2c 41 31 09 09 3b | 20 73 65 74 20 52 78 20 |nd,A1..;| set Rx |
|000010c0| 76 65 63 74 6f 72 0d 09 | 4d 4f 56 45 2e 4c 09 09 |vector..|MOVE.L..|
|000010d0| 41 31 2c 30 28 41 30 2c | 44 30 29 0d 09 4d 4f 56 |A1,0(A0,|D0)..MOV|
|000010e0| 45 09 09 54 78 49 6e 74 | 4f 66 66 73 65 74 28 41 |E..TxInt|Offset(A|
|000010f0| 35 29 2c 44 30 09 3b 20 | 67 65 74 20 6f 66 66 73 |5),D0.; |get offs|
|00001100| 65 74 20 74 6f 20 54 78 | 20 76 65 63 74 6f 72 0d |et to Tx| vector.|
|00001110| 09 4c 45 41 09 09 54 78 | 49 6e 74 48 61 6e 64 2c |.LEA..Tx|IntHand,|
|00001120| 41 31 09 09 3b 20 73 65 | 74 20 54 78 20 76 65 63 |A1..; se|t Tx vec|
|00001130| 74 6f 72 0d 09 4d 4f 56 | 45 2e 4c 09 09 41 31 2c |tor..MOV|E.L..A1,|
|00001140| 30 28 41 30 2c 44 30 29 | 0d 09 4d 4f 56 45 09 09 |0(A0,D0)|..MOVE..|
|00001150| 53 70 65 63 52 65 63 43 | 6f 6e 64 28 41 35 29 2c |SpecRecC|ond(A5),|
|00001160| 44 30 09 3b 20 67 65 74 | 20 6f 66 66 73 65 74 20 |D0.; get| offset |
|00001170| 74 6f 20 53 70 65 63 69 | 61 6c 20 76 65 63 74 6f |to Speci|al vecto|
|00001180| 72 0d 09 4c 45 41 09 09 | 53 74 75 62 2c 41 31 0d |r..LEA..|Stub,A1.|
|00001190| 09 4d 4f 56 45 2e 4c 09 | 09 41 31 2c 30 28 41 30 |.MOVE.L.|.A1,0(A0|
|000011a0| 2c 44 30 29 0d 09 0d 09 | 43 4c 52 09 09 52 78 42 |,D0)....|CLR..RxB|
|000011b0| 79 74 65 49 6e 28 41 35 | 29 09 09 3b 20 69 6e 69 |yteIn(A5|)..; ini|
|000011c0| 74 20 66 6c 61 67 73 20 | 26 20 70 6f 69 6e 74 65 |t flags |& pointe|
|000011d0| 72 73 0d 09 43 4c 52 09 | 09 52 78 42 79 74 65 4f |rs..CLR.|.RxByteO|
|000011e0| 75 74 28 41 35 29 0d 09 | 4d 4f 56 45 2e 42 09 09 |ut(A5)..|MOVE.B..|
|000011f0| 23 24 46 46 2c 52 78 51 | 45 6d 70 74 79 28 41 35 |#$FF,RxQ|Empty(A5|
|00001200| 29 0d 09 43 4c 52 09 09 | 54 78 42 79 74 65 49 6e |)..CLR..|TxByteIn|
|00001210| 28 41 35 29 0d 09 43 4c | 52 09 09 54 78 42 79 74 |(A5)..CL|R..TxByt|
|00001220| 65 4f 75 74 28 41 35 29 | 0d 09 4d 4f 56 45 2e 42 |eOut(A5)|..MOVE.B|
|00001230| 09 09 23 24 46 46 2c 54 | 78 51 45 6d 70 74 79 28 |..#$FF,T|xQEmpty(|
|00001240| 41 35 29 0d 0d 09 4d 4f | 56 45 4d 2e 4c 09 09 28 |A5)...MO|VEM.L..(|
|00001250| 53 50 29 2b 2c 44 30 2f | 41 30 2d 41 31 09 09 3b |SP)+,D0/|A0-A1..;|
|00001260| 20 52 65 73 74 6f 72 65 | 20 72 65 67 69 73 74 65 | Restore| registe|
|00001270| 72 73 0d 09 4d 4f 56 45 | 09 09 28 53 50 29 2b 2c |rs..MOVE|..(SP)+,|
|00001280| 53 52 09 09 3b 20 52 65 | 73 74 6f 72 65 20 69 6e |SR..; Re|store in|
|00001290| 74 65 72 72 75 70 74 73 | 0d 09 52 54 53 09 09 09 |terrupts|..RTS...|
|000012a0| 09 09 3b 20 61 6e 64 20 | 72 65 74 75 72 6e 0d 0d |..; and |return..|
|000012b0| 3b 20 54 68 69 73 20 69 | 73 20 74 68 65 20 72 6f |; This i|s the ro|
|000012c0| 75 74 69 6e 65 20 74 6f | 20 74 72 61 6e 73 6d 69 |utine to| transmi|
|000012d0| 74 20 61 20 4d 49 44 49 | 20 62 79 74 65 20 6f 66 |t a MIDI| byte of|
|000012e0| 20 64 61 74 61 2e 20 20 | 54 6f 20 75 73 65 20 74 | data. |To use t|
|000012f0| 68 69 73 20 72 6f 75 74 | 69 6e 65 0d 3b 20 70 6c |his rout|ine.; pl|
|00001300| 61 63 65 20 74 68 65 20 | 62 79 74 65 20 74 6f 20 |ace the |byte to |
|00001310| 62 65 20 74 72 61 6e 73 | 6d 69 74 74 65 64 20 61 |be trans|mitted a|
|00001320| 73 20 74 68 65 20 6c 6f | 77 65 72 20 38 20 62 69 |s the lo|wer 8 bi|
|00001330| 74 73 20 6f 66 20 61 20 | 77 6f 72 64 20 6f 6e 20 |ts of a |word on |
|00001340| 74 68 65 0d 3b 20 73 74 | 61 63 6b 2c 20 74 68 65 |the.; st|ack, the|
|00001350| 6e 20 42 53 52 20 74 6f | 20 54 78 4d 49 44 49 2e |n BSR to| TxMIDI.|
|00001360| 0d 0d 54 78 4d 49 44 49 | 0d 09 4c 49 4e 4b 09 09 |..TxMIDI|..LINK..|
|00001370| 41 36 2c 23 30 09 09 09 | 3b 20 73 65 74 20 66 72 |A6,#0...|; set fr|
|00001380| 61 6d 65 20 70 6f 69 6e | 74 65 72 0d 09 4d 4f 56 |ame poin|ter..MOV|
|00001390| 45 09 09 53 52 2c 2d 28 | 53 50 29 09 09 3b 20 53 |E..SR,-(|SP)..; S|
|000013a0| 61 76 65 20 69 6e 74 65 | 72 72 75 70 74 73 0d 09 |ave inte|rrupts..|
|000013b0| 4d 4f 56 45 4d 2e 4c 09 | 09 44 30 2f 41 30 2d 41 |MOVEM.L.|.D0/A0-A|
|000013c0| 32 2c 2d 28 53 50 29 09 | 09 3b 20 53 61 76 65 20 |2,-(SP).|.; Save |
|000013d0| 72 65 67 69 73 74 65 72 | 73 0d 09 4f 52 49 09 09 |register|s..ORI..|
|000013e0| 23 24 30 33 30 30 2c 53 | 52 09 09 3b 20 44 69 73 |#$0300,S|R..; Dis|
|000013f0| 61 62 6c 65 20 69 6e 74 | 65 72 72 75 70 74 73 0d |able int|errupts.|
|00001400| 0d 09 54 53 54 2e 42 09 | 09 54 78 51 45 6d 70 74 |..TST.B.|.TxQEmpt|
|00001410| 79 28 41 35 29 09 09 3b | 20 69 73 20 54 78 51 75 |y(A5)..;| is TxQu|
|00001420| 65 75 65 20 65 6d 70 74 | 79 3f 0d 09 42 4e 45 09 |eue empt|y?..BNE.|
|00001430| 09 54 78 51 45 09 09 09 | 3b 20 69 66 20 73 6f 20 |.TxQE...|; if so |
|00001440| 62 72 61 6e 63 68 0d 09 | 4d 4f 56 45 09 09 54 78 |branch..|MOVE..Tx|
|00001450| 42 79 74 65 49 6e 28 41 | 35 29 2c 44 30 09 09 3b |ByteIn(A|5),D0..;|
|00001460| 20 69 66 20 6e 6f 74 20 | 61 64 64 20 62 79 74 65 | if not |add byte|
|00001470| 20 74 6f 20 71 75 65 75 | 65 0d 09 4c 45 41 09 09 | to queu|e..LEA..|
|00001480| 54 78 51 75 65 75 65 28 | 41 35 29 2c 41 32 09 09 |TxQueue(|A5),A2..|
|00001490| 3b 20 70 6f 69 6e 74 20 | 74 6f 20 71 75 65 75 65 |; point |to queue|
|000014a0| 0d 09 4d 4f 56 45 2e 42 | 09 09 39 28 41 36 29 2c |..MOVE.B|..9(A6),|
|000014b0| 30 28 41 32 2c 44 30 29 | 09 09 3b 20 70 6c 61 63 |0(A2,D0)|..; plac|
|000014c0| 65 20 62 79 74 65 20 69 | 6e 20 71 75 65 75 65 0d |e byte i|n queue.|
|000014d0| 09 41 44 44 51 09 09 23 | 31 2c 44 30 09 09 09 3b |.ADDQ..#|1,D0...;|
|000014e0| 20 75 70 64 61 74 65 20 | 54 78 42 79 74 65 49 6e | update |TxByteIn|
|000014f0| 0d 09 43 4d 50 09 09 23 | 54 78 51 53 69 7a 65 2c |..CMP..#|TxQSize,|
|00001500| 44 30 0d 09 42 4e 45 09 | 09 40 31 0d 09 4d 4f 56 |D0..BNE.|.@1..MOV|
|00001510| 45 09 09 23 30 2c 44 30 | 0d 40 31 09 4d 4f 56 45 |E..#0,D0|.@1.MOVE|
|00001520| 09 09 44 30 2c 54 78 42 | 79 74 65 49 6e 28 41 35 |..D0,TxB|yteIn(A5|
|00001530| 29 0d 09 42 52 41 09 09 | 54 78 45 78 69 74 09 09 |)..BRA..|TxExit..|
|00001540| 09 3b 20 61 6e 64 20 65 | 78 69 74 0d 09 0d 54 78 |.; and e|xit...Tx|
|00001550| 51 45 09 4d 4f 56 45 2e | 4c 09 09 23 73 63 63 52 |QE.MOVE.|L..#sccR|
|00001560| 62 61 73 65 2c 41 30 09 | 09 3b 20 67 65 74 20 53 |base,A0.|.; get S|
|00001570| 43 43 20 52 65 61 64 20 | 41 64 64 72 65 73 73 0d |CC Read |Address.|
|00001580| 09 4d 4f 56 45 2e 4c 09 | 09 23 73 63 63 57 62 61 |.MOVE.L.|.#sccWba|
|00001590| 73 65 2c 41 31 09 09 3b | 20 67 65 74 20 53 43 43 |se,A1..;| get SCC|
|000015a0| 20 57 72 69 74 65 20 61 | 64 64 72 65 73 73 0d 09 | Write a|ddress..|
|000015b0| 4d 4f 56 45 09 09 43 74 | 6c 4f 66 66 73 65 74 28 |MOVE..Ct|lOffset(|
|000015c0| 41 35 29 2c 44 30 09 3b | 20 67 65 74 20 69 6e 64 |A5),D0.;| get ind|
|000015d0| 65 78 20 66 6f 72 20 43 | 74 6c 0d 09 42 54 53 54 |ex for C|tl..BTST|
|000015e0| 2e 42 09 09 23 54 42 45 | 2c 30 28 41 30 2c 44 30 |.B..#TBE|,0(A0,D0|
|000015f0| 29 09 09 3b 20 74 72 61 | 6e 73 6d 69 74 20 62 75 |)..; tra|nsmit bu|
|00001600| 66 66 65 72 20 65 6d 70 | 74 79 3f 0d 09 42 4e 45 |ffer emp|ty?..BNE|
|00001610| 09 09 46 69 72 73 74 42 | 79 74 65 09 09 3b 20 69 |..FirstB|yte..; i|
|00001620| 66 20 73 6f 20 62 72 61 | 6e 63 68 0d 09 4d 4f 56 |f so bra|nch..MOV|
|00001630| 45 09 09 54 78 42 79 74 | 65 49 6e 28 41 35 29 2c |E..TxByt|eIn(A5),|
|00001640| 44 30 09 09 3b 20 69 66 | 20 6e 6f 74 20 61 64 64 |D0..; if| not add|
|00001650| 20 74 6f 20 71 75 65 75 | 65 0d 09 4c 45 41 09 09 | to queu|e..LEA..|
|00001660| 54 78 51 75 65 75 65 28 | 41 35 29 2c 41 32 09 09 |TxQueue(|A5),A2..|
|00001670| 3b 20 70 6f 69 6e 74 20 | 74 6f 20 71 75 65 75 65 |; point |to queue|
|00001680| 0d 09 4d 4f 56 45 2e 42 | 09 09 39 28 41 36 29 2c |..MOVE.B|..9(A6),|
|00001690| 30 28 41 32 2c 44 30 29 | 09 09 3b 20 70 6c 61 63 |0(A2,D0)|..; plac|
|000016a0| 65 20 62 79 74 65 20 69 | 6e 20 71 75 65 75 65 0d |e byte i|n queue.|
|000016b0| 09 41 44 44 51 09 09 23 | 31 2c 44 30 09 09 09 3b |.ADDQ..#|1,D0...;|
|000016c0| 20 75 70 64 61 74 65 20 | 69 6e 64 65 78 0d 09 43 | update |index..C|
|000016d0| 4d 50 09 09 23 54 78 51 | 53 69 7a 65 2c 44 30 0d |MP..#TxQ|Size,D0.|
|000016e0| 09 42 4e 45 09 09 40 31 | 0d 09 4d 4f 56 45 09 09 |.BNE..@1|..MOVE..|
|000016f0| 23 30 2c 44 30 0d 40 31 | 09 4d 4f 56 45 09 09 44 |#0,D0.@1|.MOVE..D|
|00001700| 30 2c 54 78 42 79 74 65 | 49 6e 28 41 35 29 0d 09 |0,TxByte|In(A5)..|
|00001710| 4d 4f 56 45 2e 42 09 09 | 23 30 2c 54 78 51 45 6d |MOVE.B..|#0,TxQEm|
|00001720| 70 74 79 28 41 35 29 09 | 09 3b 20 72 65 73 65 74 |pty(A5).|.; reset|
|00001730| 20 71 75 65 75 65 20 65 | 6d 70 74 79 20 66 6c 61 | queue e|mpty fla|
|00001740| 67 0d 09 42 52 41 09 09 | 54 78 45 78 69 74 09 09 |g..BRA..|TxExit..|
|00001750| 09 3b 20 61 6e 64 20 65 | 78 69 74 0d 09 09 0d 46 |.; and e|xit....F|
|00001760| 69 72 73 74 42 79 74 65 | 0d 09 4d 4f 56 45 09 09 |irstByte|..MOVE..|
|00001770| 44 61 74 61 4f 66 66 73 | 65 74 28 41 35 29 2c 44 |DataOffs|et(A5),D|
|00001780| 30 09 3b 20 67 65 74 20 | 69 6e 64 65 78 20 74 6f |0.; get |index to|
|00001790| 20 64 61 74 61 0d 09 4d | 4f 56 45 2e 4c 09 09 28 | data..M|OVE.L..(|
|000017a0| 53 50 29 2c 28 53 50 29 | 09 09 3b 20 64 65 6c 61 |SP),(SP)|..; dela|
|000017b0| 79 0d 09 4d 4f 56 45 2e | 42 09 09 39 28 41 36 29 |y..MOVE.|B..9(A6)|
|000017c0| 2c 30 28 41 31 2c 44 30 | 29 09 09 3b 20 77 72 69 |,0(A1,D0|)..; wri|
|000017d0| 74 65 20 64 61 74 61 20 | 74 6f 20 53 43 43 0d 09 |te data |to SCC..|
|000017e0| 4d 4f 56 45 2e 4c 09 09 | 28 53 50 29 2c 28 53 50 |MOVE.L..|(SP),(SP|
|000017f0| 29 09 09 3b 20 44 65 6c | 61 79 0d 09 0d 0d 54 78 |)..; Del|ay....Tx|
|00001800| 45 78 69 74 09 4d 4f 56 | 45 4d 2e 4c 09 09 28 53 |Exit.MOV|EM.L..(S|
|00001810| 50 29 2b 2c 44 30 2f 41 | 30 2d 41 32 09 09 3b 20 |P)+,D0/A|0-A2..; |
|00001820| 52 65 73 74 6f 72 65 20 | 72 65 67 69 73 74 65 72 |Restore |register|
|00001830| 73 0d 09 4d 4f 56 45 09 | 09 28 53 50 29 2b 2c 53 |s..MOVE.|.(SP)+,S|
|00001840| 52 09 09 3b 20 52 65 73 | 74 6f 72 65 20 69 6e 74 |R..; Res|tore int|
|00001850| 65 72 72 75 70 74 73 0d | 09 55 4e 4c 4b 09 09 41 |errupts.|.UNLK..A|
|00001860| 36 09 09 09 3b 20 72 65 | 6c 65 61 73 65 20 66 72 |6...; re|lease fr|
|00001870| 61 6d 65 20 70 6f 69 6e | 74 65 72 0d 09 4d 4f 56 |ame poin|ter..MOV|
|00001880| 45 2e 4c 09 09 28 53 50 | 29 2b 2c 41 31 09 09 3b |E.L..(SP|)+,A1..;|
|00001890| 20 73 61 76 65 20 72 65 | 74 75 72 6e 20 61 64 64 | save re|turn add|
|000018a0| 72 65 73 73 0d 09 41 44 | 44 2e 4c 09 09 23 32 2c |ress..AD|D.L..#2,|
|000018b0| 53 50 09 09 09 3b 20 6d | 6f 76 65 20 70 61 73 74 |SP...; m|ove past|
|000018c0| 20 64 61 74 61 20 77 6f | 72 64 0d 09 4d 4f 56 45 | data wo|rd..MOVE|
|000018d0| 2e 4c 09 09 41 31 2c 2d | 28 53 50 29 09 09 3b 20 |.L..A1,-|(SP)..; |
|000018e0| 70 75 74 20 61 64 64 72 | 65 73 73 20 62 61 63 6b |put addr|ess back|
|000018f0| 20 6f 6e 20 73 74 61 63 | 6b 0d 09 52 54 53 09 09 | on stac|k..RTS..|
|00001900| 09 09 09 3b 20 61 6e 64 | 20 72 65 74 75 72 6e 0d |...; and| return.|
|00001910| 0d 3b 20 54 68 69 73 20 | 69 73 20 74 68 65 20 72 |.; This |is the r|
|00001920| 6f 75 74 69 6e 65 20 74 | 6f 20 72 65 63 65 69 76 |outine t|o receiv|
|00001930| 65 20 61 20 62 79 74 65 | 20 6f 66 20 4d 49 44 49 |e a byte| of MIDI|
|00001940| 20 64 61 74 61 2e 20 20 | 54 6f 20 75 73 65 20 74 | data. |To use t|
|00001950| 68 69 73 20 72 6f 75 74 | 69 6e 65 0d 3b 20 74 72 |his rout|ine.; tr|
|00001960| 65 61 74 20 69 74 20 6c | 69 6b 65 20 61 20 50 61 |eat it l|ike a Pa|
|00001970| 73 63 61 6c 20 66 75 6e | 63 74 69 6f 6e 2e 20 20 |scal fun|ction. |
|00001980| 4c 65 61 76 65 20 73 70 | 61 63 65 20 6f 6e 20 74 |Leave sp|ace on t|
|00001990| 68 65 20 73 74 61 63 6b | 20 66 6f 72 20 61 20 77 |he stack| for a w|
|000019a0| 6f 72 64 20 6f 66 0d 3b | 20 64 61 74 61 20 62 65 |ord of.;| data be|
|000019b0| 66 6f 72 65 20 42 53 52 | 27 69 6e 67 20 74 6f 20 |fore BSR|'ing to |
|000019c0| 74 68 69 73 20 72 6f 75 | 74 69 6e 65 2e 20 20 49 |this rou|tine. I|
|000019d0| 66 20 74 68 65 20 64 61 | 74 61 20 6f 6e 20 74 68 |f the da|ta on th|
|000019e0| 65 20 73 74 61 63 6b 20 | 61 66 74 65 72 20 74 68 |e stack |after th|
|000019f0| 65 0d 3b 20 72 6f 75 74 | 69 6e 65 20 65 78 65 63 |e.; rout|ine exec|
|00001a00| 75 74 65 73 20 69 73 20 | 24 46 46 46 46 20 74 68 |utes is |$FFFF th|
|00001a10| 65 72 65 20 77 61 73 20 | 6e 6f 20 4d 49 44 49 20 |ere was |no MIDI |
|00001a20| 64 61 74 61 20 61 76 61 | 69 6c 61 62 6c 65 2e 0d |data ava|ilable..|
|00001a30| 3b 20 49 66 20 74 68 65 | 20 75 70 70 65 72 20 62 |; If the| upper b|
|00001a40| 79 74 65 20 69 73 20 63 | 6c 65 61 72 20 74 68 65 |yte is c|lear the|
|00001a50| 6e 20 61 20 76 61 6c 69 | 64 20 4d 49 44 49 20 62 |n a vali|d MIDI b|
|00001a60| 79 74 65 20 69 73 20 69 | 6e 20 74 68 65 20 6c 6f |yte is i|n the lo|
|00001a70| 77 65 72 20 38 20 62 69 | 74 73 2e 0d 0d 52 78 4d |wer 8 bi|ts...RxM|
|00001a80| 49 44 49 0d 09 4c 49 4e | 4b 09 09 41 36 2c 23 30 |IDI..LIN|K..A6,#0|
|00001a90| 09 09 09 3b 20 73 65 74 | 20 66 72 61 6d 65 20 70 |...; set| frame p|
|00001aa0| 6f 69 6e 74 65 72 0d 09 | 4d 4f 56 45 09 09 53 52 |ointer..|MOVE..SR|
|00001ab0| 2c 2d 28 53 50 29 09 09 | 3b 20 53 61 76 65 20 69 |,-(SP)..|; Save i|
|00001ac0| 6e 74 65 72 72 75 70 74 | 73 0d 09 4d 4f 56 45 4d |nterrupt|s..MOVEM|
|00001ad0| 2e 4c 09 09 44 30 2d 44 | 31 2f 41 30 2d 41 32 2c |.L..D0-D|1/A0-A2,|
|00001ae0| 2d 28 53 50 29 09 3b 20 | 53 61 76 65 20 72 65 67 |-(SP).; |Save reg|
|00001af0| 69 73 74 65 72 73 0d 09 | 4f 52 49 09 09 23 24 30 |isters..|ORI..#$0|
|00001b00| 33 30 30 2c 53 52 09 09 | 3b 20 64 69 73 61 62 6c |300,SR..|; disabl|
|00001b10| 65 20 69 6e 74 65 72 72 | 75 70 74 73 0d 0d 09 54 |e interr|upts...T|
|00001b20| 53 54 2e 42 09 09 52 78 | 51 45 6d 70 74 79 28 41 |ST.B..Rx|QEmpty(A|
|00001b30| 35 29 09 09 3b 20 61 6e | 79 20 64 61 74 61 20 61 |5)..; an|y data a|
|00001b40| 76 61 69 6c 61 62 6c 65 | 3f 0d 09 42 45 51 09 09 |vailable|?..BEQ..|
|00001b50| 40 31 09 09 09 3b 20 69 | 66 20 73 6f 2c 20 62 72 |@1...; i|f so, br|
|00001b60| 61 6e 63 68 0d 09 4d 4f | 56 45 09 09 23 24 46 46 |anch..MO|VE..#$FF|
|00001b70| 46 46 2c 38 28 41 36 29 | 09 09 3b 20 69 66 20 6e |FF,8(A6)|..; if n|
|00001b80| 6f 74 2c 20 72 65 74 75 | 72 6e 20 77 69 74 68 20 |ot, retu|rn with |
|00001b90| 24 46 46 46 46 0d 09 42 | 52 41 09 09 52 78 45 78 |$FFFF..B|RA..RxEx|
|00001ba0| 69 74 0d 40 31 09 4d 4f | 56 45 09 09 52 78 42 79 |it.@1.MO|VE..RxBy|
|00001bb0| 74 65 4f 75 74 28 41 35 | 29 2c 44 30 09 3b 20 67 |teOut(A5|),D0.; g|
|00001bc0| 65 74 20 69 6e 64 65 78 | 20 74 6f 20 62 79 74 65 |et index| to byte|
|00001bd0| 20 6f 75 74 0d 09 4c 45 | 41 09 09 52 78 51 75 65 | out..LE|A..RxQue|
|00001be0| 75 65 28 41 35 29 2c 41 | 32 09 09 3b 20 70 6f 69 |ue(A5),A|2..; poi|
|00001bf0| 6e 74 20 74 6f 20 71 75 | 65 75 65 0d 09 4d 4f 56 |nt to qu|eue..MOV|
|00001c00| 45 2e 4c 09 09 23 30 2c | 44 31 09 09 09 3b 20 63 |E.L..#0,|D1...; c|
|00001c10| 6c 65 61 72 20 64 61 74 | 61 20 72 65 67 69 73 74 |lear dat|a regist|
|00001c20| 65 72 0d 09 4d 4f 56 45 | 2e 42 09 09 30 28 41 32 |er..MOVE|.B..0(A2|
|00001c30| 2c 44 30 29 2c 44 31 09 | 09 3b 20 67 65 74 20 4d |,D0),D1.|.; get M|
|00001c40| 49 44 49 20 64 61 74 61 | 0d 09 4d 4f 56 45 09 09 |IDI data|..MOVE..|
|00001c50| 44 31 2c 38 28 41 36 29 | 09 09 3b 20 70 6c 61 63 |D1,8(A6)|..; plac|
|00001c60| 65 20 69 74 20 6f 6e 20 | 73 74 61 63 6b 20 66 6f |e it on |stack fo|
|00001c70| 72 20 72 65 74 75 72 6e | 20 0d 09 41 44 44 51 09 |r return| ..ADDQ.|
|00001c80| 09 23 31 2c 44 30 09 09 | 09 3b 20 75 70 64 61 74 |.#1,D0..|.; updat|
|00001c90| 65 20 69 6e 64 65 78 0d | 09 43 4d 50 09 09 23 52 |e index.|.CMP..#R|
|00001ca0| 78 51 53 69 7a 65 2c 44 | 30 0d 09 42 4e 45 09 09 |xQSize,D|0..BNE..|
|00001cb0| 40 32 0d 09 4d 4f 56 45 | 09 09 23 30 2c 44 30 0d |@2..MOVE|..#0,D0.|
|00001cc0| 40 32 09 4d 4f 56 45 09 | 09 44 30 2c 52 78 42 79 |@2.MOVE.|.D0,RxBy|
|00001cd0| 74 65 4f 75 74 28 41 35 | 29 0d 09 4d 4f 56 45 09 |teOut(A5|)..MOVE.|
|00001ce0| 09 52 78 42 79 74 65 49 | 6e 28 41 35 29 2c 44 31 |.RxByteI|n(A5),D1|
|00001cf0| 0d 09 43 4d 50 09 09 44 | 30 2c 44 31 09 09 09 3b |..CMP..D|0,D1...;|
|00001d00| 20 69 73 20 71 75 65 75 | 65 20 65 6d 70 74 79 3f | is queu|e empty?|
|00001d10| 0d 09 42 4e 45 09 09 52 | 78 45 78 69 74 09 09 09 |..BNE..R|xExit...|
|00001d20| 3b 20 69 66 20 6e 6f 74 | 20 65 78 69 74 0d 09 4d |; if not| exit..M|
|00001d30| 4f 56 45 2e 42 09 09 23 | 24 46 46 2c 52 78 51 45 |OVE.B..#|$FF,RxQE|
|00001d40| 6d 70 74 79 28 41 35 29 | 09 3b 20 69 66 20 65 6d |mpty(A5)|.; if em|
|00001d50| 70 74 79 2c 20 73 65 74 | 20 66 6c 61 67 0d 0d 52 |pty, set| flag..R|
|00001d60| 78 45 78 69 74 09 4d 4f | 56 45 4d 2e 4c 09 09 28 |xExit.MO|VEM.L..(|
|00001d70| 53 50 29 2b 2c 44 30 2d | 44 31 2f 41 30 2d 41 32 |SP)+,D0-|D1/A0-A2|
|00001d80| 09 3b 20 52 65 73 74 6f | 72 65 20 72 65 67 69 73 |.; Resto|re regis|
|00001d90| 74 65 72 73 0d 09 4d 4f | 56 45 09 09 28 53 50 29 |ters..MO|VE..(SP)|
|00001da0| 2b 2c 53 52 09 09 3b 20 | 72 65 73 74 6f 72 65 20 |+,SR..; |restore |
|00001db0| 69 6e 74 65 72 72 75 70 | 74 73 0d 09 55 4e 4c 4b |interrup|ts..UNLK|
|00001dc0| 09 09 41 36 0d 09 52 54 | 53 09 09 09 09 09 3b 20 |..A6..RT|S.....; |
|00001dd0| 61 6e 64 20 72 65 74 75 | 72 6e 0d 09 0d 3b 20 54 |and retu|rn...; T|
|00001de0| 68 69 73 20 69 73 20 74 | 68 65 20 69 6e 74 65 72 |his is t|he inter|
|00001df0| 72 75 70 74 20 72 6f 75 | 74 69 6e 65 20 66 6f 72 |rupt rou|tine for|
|00001e00| 20 72 65 63 65 69 76 69 | 6e 67 20 61 20 62 79 74 | receivi|ng a byt|
|00001e10| 65 20 6f 66 20 4d 49 44 | 49 20 64 61 74 61 2e 20 |e of MID|I data. |
|00001e20| 20 49 74 20 0d 3b 20 70 | 6c 61 63 65 73 20 74 68 | It .; p|laces th|
|00001e30| 65 20 72 65 63 65 69 76 | 65 64 20 62 79 74 65 20 |e receiv|ed byte |
|00001e40| 69 6e 20 61 20 63 69 72 | 63 75 6c 61 72 20 71 75 |in a cir|cular qu|
|00001e50| 65 75 65 20 74 6f 20 62 | 65 20 61 63 63 65 73 73 |eue to b|e access|
|00001e60| 65 64 20 6c 61 74 65 72 | 20 62 79 0d 3b 20 74 68 |ed later| by.; th|
|00001e70| 65 20 61 70 70 6c 69 63 | 61 74 69 6f 6e 2e 0d 0d |e applic|ation...|
|00001e80| 0d 52 78 49 6e 74 48 61 | 6e 64 0d 09 4f 52 49 09 |.RxIntHa|nd..ORI.|
|00001e90| 09 23 24 30 33 30 30 2c | 53 52 09 09 3b 20 64 69 |.#$0300,|SR..; di|
|00001ea0| 73 61 62 6c 65 20 69 6e | 74 65 72 72 75 70 74 73 |sable in|terrupts|
|00001eb0| 0d 09 4d 4f 56 45 4d 2e | 4c 09 09 44 30 2d 44 31 |..MOVEM.|L..D0-D1|
|00001ec0| 2f 41 30 2d 41 32 2f 41 | 35 2c 2d 28 53 50 29 09 |/A0-A2/A|5,-(SP).|
|00001ed0| 3b 20 73 61 76 65 20 72 | 65 67 69 73 74 65 72 73 |; save r|egisters|
|00001ee0| 0d 09 4d 4f 56 45 2e 4c | 09 09 43 75 72 72 65 6e |..MOVE.L|..Curren|
|00001ef0| 74 41 35 2c 41 35 09 09 | 3b 20 6d 61 6b 65 20 73 |tA5,A5..|; make s|
|00001f00| 75 72 65 20 41 35 20 69 | 73 20 63 6f 72 72 65 63 |ure A5 i|s correc|
|00001f10| 74 0d 09 4d 4f 56 45 2e | 4c 09 09 23 73 63 63 52 |t..MOVE.|L..#sccR|
|00001f20| 42 61 73 65 2c 41 30 09 | 09 3b 20 67 65 74 20 53 |Base,A0.|.; get S|
|00001f30| 43 43 20 61 64 64 72 65 | 73 73 0d 09 4d 4f 56 45 |CC addre|ss..MOVE|
|00001f40| 2e 4c 09 09 23 73 63 63 | 57 42 61 73 65 2c 41 31 |.L..#scc|WBase,A1|
|00001f50| 0d 09 0d 09 4d 4f 56 45 | 09 09 44 61 74 61 4f 66 |....MOVE|..DataOf|
|00001f60| 66 73 65 74 28 41 35 29 | 2c 44 30 09 3b 20 67 65 |fset(A5)|,D0.; ge|
|00001f70| 74 20 64 61 74 61 20 6f | 66 66 73 65 74 0d 09 4d |t data o|ffset..M|
|00001f80| 4f 56 45 2e 42 09 09 30 | 28 41 30 2c 44 30 29 2c |OVE.B..0|(A0,D0),|
|00001f90| 44 31 09 09 3b 20 72 65 | 61 64 20 64 61 74 61 20 |D1..; re|ad data |
|00001fa0| 66 72 6f 6d 20 53 43 43 | 0d 09 4d 4f 56 45 2e 4c |from SCC|..MOVE.L|
|00001fb0| 09 09 28 53 50 29 2c 28 | 53 50 29 09 09 3b 20 44 |..(SP),(|SP)..; D|
|00001fc0| 65 6c 61 79 0d 09 4c 45 | 41 09 09 52 78 51 75 65 |elay..LE|A..RxQue|
|00001fd0| 75 65 28 41 35 29 2c 41 | 32 09 09 3b 20 70 6f 69 |ue(A5),A|2..; poi|
|00001fe0| 6e 74 20 74 6f 20 71 75 | 65 75 65 0d 09 4d 4f 56 |nt to qu|eue..MOV|
|00001ff0| 45 09 09 52 78 42 79 74 | 65 49 6e 28 41 35 29 2c |E..RxByt|eIn(A5),|
|00002000| 44 30 09 09 3b 20 67 65 | 74 20 6f 66 66 73 65 74 |D0..; ge|t offset|
|00002010| 20 74 6f 20 6e 65 78 74 | 20 63 65 6c 6c 0d 09 4d | to next| cell..M|
|00002020| 4f 56 45 2e 42 09 09 44 | 31 2c 30 28 41 32 2c 44 |OVE.B..D|1,0(A2,D|
|00002030| 30 29 09 09 3b 20 70 75 | 74 20 62 79 74 65 20 69 |0)..; pu|t byte i|
|00002040| 6e 20 71 75 65 75 65 0d | 09 4d 4f 56 45 2e 42 09 |n queue.|.MOVE.B.|
|00002050| 09 23 30 2c 52 78 51 45 | 6d 70 74 79 28 41 35 29 |.#0,RxQE|mpty(A5)|
|00002060| 09 09 3b 20 72 65 73 65 | 74 20 71 75 65 75 65 20 |..; rese|t queue |
|00002070| 65 6d 70 74 79 20 66 6c | 61 67 0d 09 41 44 44 51 |empty fl|ag..ADDQ|
|00002080| 09 09 23 31 2c 44 30 09 | 09 09 3b 20 75 70 64 61 |..#1,D0.|..; upda|
|00002090| 74 65 20 69 6e 64 65 78 | 0d 09 43 4d 50 09 09 23 |te index|..CMP..#|
|000020a0| 52 78 51 53 69 7a 65 2c | 44 30 0d 09 42 4e 45 09 |RxQSize,|D0..BNE.|
|000020b0| 09 40 31 0d 09 4d 4f 56 | 45 09 09 23 30 2c 44 30 |.@1..MOV|E..#0,D0|
|000020c0| 0d 40 31 09 4d 4f 56 45 | 09 09 44 30 2c 52 78 42 |.@1.MOVE|..D0,RxB|
|000020d0| 79 74 65 49 6e 28 41 35 | 29 0d 09 0d 09 4d 4f 56 |yteIn(A5|)....MOV|
|000020e0| 45 4d 2e 4c 09 09 28 53 | 50 29 2b 2c 44 30 2d 44 |EM.L..(S|P)+,D0-D|
|000020f0| 31 2f 41 30 2d 41 32 2f | 41 35 09 3b 20 72 65 73 |1/A0-A2/|A5.; res|
|00002100| 74 6f 72 65 20 72 65 67 | 69 73 74 65 72 73 0d 09 |tore reg|isters..|
|00002110| 41 4e 44 49 09 09 23 24 | 46 38 46 46 2c 53 52 09 |ANDI..#$|F8FF,SR.|
|00002120| 09 3b 20 65 6e 61 62 6c | 65 20 69 6e 74 65 72 72 |.; enabl|e interr|
|00002130| 75 70 74 73 0d 09 52 54 | 53 09 09 09 09 09 3b 20 |upts..RT|S.....; |
|00002140| 61 6e 64 20 72 65 74 75 | 72 6e 0d 09 0d 3b 20 54 |and retu|rn...; T|
|00002150| 68 69 73 20 69 73 20 74 | 68 65 20 69 6e 74 65 72 |his is t|he inter|
|00002160| 72 75 70 74 20 72 6f 75 | 74 69 6e 65 20 66 6f 72 |rupt rou|tine for|
|00002170| 20 74 72 61 6e 73 6d 69 | 74 74 69 6e 67 20 61 20 | transmi|tting a |
|00002180| 62 79 74 65 20 6f 66 20 | 4d 49 44 49 20 64 61 74 |byte of |MIDI dat|
|00002190| 61 2e 20 20 49 74 0d 3b | 20 63 68 65 63 6b 73 20 |a. It.;| checks |
|000021a0| 74 6f 20 73 65 65 20 69 | 66 20 74 68 65 72 65 20 |to see i|f there |
|000021b0| 69 73 20 61 6e 79 20 64 | 61 74 61 20 74 6f 20 73 |is any d|ata to s|
|000021c0| 65 6e 64 2e 20 20 49 66 | 20 74 68 65 72 65 20 69 |end. If| there i|
|000021d0| 73 20 69 74 20 73 65 6e | 64 73 20 69 74 20 74 6f |s it sen|ds it to|
|000021e0| 20 0d 3b 20 74 68 65 20 | 53 43 43 2e 20 20 49 66 | .; the |SCC. If|
|000021f0| 20 74 68 65 72 65 20 69 | 73 6e 27 74 20 69 74 20 | there i|sn't it |
|00002200| 72 65 73 65 74 73 20 74 | 68 65 20 54 42 45 20 69 |resets t|he TBE i|
|00002210| 6e 74 65 72 72 75 70 74 | 20 69 6e 20 74 68 65 20 |nterrupt| in the |
|00002220| 53 43 43 20 61 6e 64 20 | 65 78 69 74 73 2e 0d 0d |SCC and |exits...|
|00002230| 0d 54 78 49 6e 74 48 61 | 6e 64 0d 09 4f 52 49 09 |.TxIntHa|nd..ORI.|
|00002240| 09 23 24 30 33 30 30 2c | 53 52 09 09 3b 20 64 69 |.#$0300,|SR..; di|
|00002250| 73 61 62 6c 65 20 69 6e | 74 65 72 72 75 70 74 73 |sable in|terrupts|
|00002260| 0d 09 4d 4f 56 45 4d 2e | 4c 09 09 44 30 2d 44 31 |..MOVEM.|L..D0-D1|
|00002270| 2f 41 30 2d 41 32 2f 41 | 35 2c 2d 28 53 50 29 09 |/A0-A2/A|5,-(SP).|
|00002280| 3b 20 73 61 76 65 20 72 | 65 67 69 73 74 65 72 73 |; save r|egisters|
|00002290| 0d 09 4d 4f 56 45 2e 4c | 09 09 43 75 72 72 65 6e |..MOVE.L|..Curren|
|000022a0| 74 41 35 2c 41 35 0d 09 | 4d 4f 56 45 2e 4c 09 09 |tA5,A5..|MOVE.L..|
|000022b0| 23 73 63 63 52 42 61 73 | 65 2c 41 30 09 09 3b 20 |#sccRBas|e,A0..; |
|000022c0| 67 65 74 20 53 43 43 20 | 61 64 64 72 65 73 73 0d |get SCC |address.|
|000022d0| 09 4d 4f 56 45 2e 4c 09 | 09 23 73 63 63 57 42 61 |.MOVE.L.|.#sccWBa|
|000022e0| 73 65 2c 41 31 0d 09 0d | 09 54 53 54 2e 42 09 09 |se,A1...|.TST.B..|
|000022f0| 54 78 51 45 6d 70 74 79 | 28 41 35 29 09 09 3b 20 |TxQEmpty|(A5)..; |
|00002300| 49 73 20 71 75 65 75 65 | 20 65 6d 70 74 79 3f 0d |Is queue| empty?.|
|00002310| 09 42 45 51 09 09 40 31 | 09 09 09 3b 20 69 66 20 |.BEQ..@1|...; if |
|00002320| 6e 6f 74 20 62 72 61 6e | 63 68 0d 09 4d 4f 56 45 |not bran|ch..MOVE|
|00002330| 09 09 43 74 6c 4f 66 66 | 73 65 74 28 41 35 29 2c |..CtlOff|set(A5),|
|00002340| 44 30 09 3b 20 67 65 74 | 20 6f 66 66 73 65 74 20 |D0.; get| offset |
|00002350| 66 6f 72 20 63 6f 6e 74 | 72 6f 6c 0d 09 4d 4f 56 |for cont|rol..MOV|
|00002360| 45 2e 42 09 09 23 24 32 | 38 2c 30 28 41 31 2c 44 |E.B..#$2|8,0(A1,D|
|00002370| 30 29 09 09 3b 20 69 66 | 20 73 6f 2c 20 72 65 73 |0)..; if| so, res|
|00002380| 65 74 20 54 42 45 20 69 | 6e 74 65 72 72 75 70 74 |et TBE i|nterrupt|
|00002390| 0d 09 4d 4f 56 45 2e 4c | 09 09 28 53 50 29 2c 28 |..MOVE.L|..(SP),(|
|000023a0| 53 50 29 09 09 3b 20 44 | 65 6c 61 79 0d 09 42 52 |SP)..; D|elay..BR|
|000023b0| 41 09 09 54 78 49 45 78 | 69 74 09 09 09 3b 20 61 |A..TxIEx|it...; a|
|000023c0| 6e 64 20 65 78 69 74 0d | 40 31 09 4d 4f 56 45 09 |nd exit.|@1.MOVE.|
|000023d0| 09 54 78 42 79 74 65 4f | 75 74 28 41 35 29 2c 44 |.TxByteO|ut(A5),D|
|000023e0| 30 09 3b 20 67 65 74 20 | 69 6e 64 65 78 20 74 6f |0.; get |index to|
|000023f0| 20 6e 65 78 74 20 64 61 | 74 61 20 62 79 74 65 0d | next da|ta byte.|
|00002400| 09 4c 45 41 09 09 54 78 | 51 75 65 75 65 28 41 35 |.LEA..Tx|Queue(A5|
|00002410| 29 2c 41 32 09 09 3b 20 | 70 6f 69 6e 74 20 74 6f |),A2..; |point to|
|00002420| 20 71 75 65 75 65 0d 09 | 4d 4f 56 45 09 09 44 61 | queue..|MOVE..Da|
|00002430| 74 61 4f 66 66 73 65 74 | 28 41 35 29 2c 44 31 09 |taOffset|(A5),D1.|
|00002440| 3b 20 67 65 74 20 64 61 | 74 61 20 6f 66 66 73 65 |; get da|ta offse|
|00002450| 74 0d 09 4d 4f 56 45 2e | 42 09 09 30 28 41 32 2c |t..MOVE.|B..0(A2,|
|00002460| 44 30 29 2c 30 28 41 31 | 2c 44 31 29 09 3b 20 77 |D0),0(A1|,D1).; w|
|00002470| 72 69 74 65 20 64 61 74 | 61 20 74 6f 20 53 43 43 |rite dat|a to SCC|
|00002480| 0d 09 4d 4f 56 45 2e 4c | 09 09 28 53 50 29 2c 28 |..MOVE.L|..(SP),(|
|00002490| 53 50 29 09 09 3b 20 44 | 65 6c 61 79 0d 09 41 44 |SP)..; D|elay..AD|
|000024a0| 44 51 09 09 23 31 2c 44 | 30 09 09 09 3b 20 75 70 |DQ..#1,D|0...; up|
|000024b0| 64 61 74 65 20 69 6e 64 | 65 78 0d 09 43 4d 50 09 |date ind|ex..CMP.|
|000024c0| 09 23 54 78 51 53 69 7a | 65 2c 44 30 0d 09 42 4e |.#TxQSiz|e,D0..BN|
|000024d0| 45 09 09 40 32 0d 09 4d | 4f 56 45 09 09 23 30 2c |E..@2..M|OVE..#0,|
|000024e0| 44 30 0d 40 32 09 4d 4f | 56 45 09 09 44 30 2c 54 |D0.@2.MO|VE..D0,T|
|000024f0| 78 42 79 74 65 4f 75 74 | 28 41 35 29 0d 09 4d 4f |xByteOut|(A5)..MO|
|00002500| 56 45 09 09 54 78 42 79 | 74 65 49 6e 28 41 35 29 |VE..TxBy|teIn(A5)|
|00002510| 2c 44 31 0d 09 43 4d 50 | 09 09 44 30 2c 44 31 09 |,D1..CMP|..D0,D1.|
|00002520| 09 09 3b 20 69 73 20 54 | 78 51 75 65 75 65 20 65 |..; is T|xQueue e|
|00002530| 6d 70 74 79 3f 0d 09 42 | 4e 45 09 09 54 78 49 45 |mpty?..B|NE..TxIE|
|00002540| 78 69 74 09 09 09 3b 20 | 69 66 20 6e 6f 74 20 65 |xit...; |if not e|
|00002550| 78 69 74 0d 09 4d 4f 56 | 45 2e 42 09 09 23 24 46 |xit..MOV|E.B..#$F|
|00002560| 46 2c 54 78 51 45 6d 70 | 74 79 28 41 35 29 09 3b |F,TxQEmp|ty(A5).;|
|00002570| 20 69 66 20 65 6d 70 74 | 79 20 73 65 74 20 66 6c | if empt|y set fl|
|00002580| 61 67 0d 0d 54 78 49 45 | 78 69 74 09 4d 4f 56 45 |ag..TxIE|xit.MOVE|
|00002590| 4d 2e 4c 09 09 28 53 50 | 29 2b 2c 44 30 2d 44 31 |M.L..(SP|)+,D0-D1|
|000025a0| 2f 41 30 2d 41 32 2f 41 | 35 09 3b 20 72 65 73 74 |/A0-A2/A|5.; rest|
|000025b0| 6f 72 65 20 72 65 67 69 | 73 74 65 72 73 0d 09 41 |ore regi|sters..A|
|000025c0| 4e 44 49 09 09 23 24 46 | 38 46 46 2c 53 52 09 09 |NDI..#$F|8FF,SR..|
|000025d0| 3b 20 65 6e 61 62 6c 65 | 20 69 6e 74 65 72 72 75 |; enable| interru|
|000025e0| 70 74 73 0d 09 52 54 53 | 09 09 09 09 09 3b 20 61 |pts..RTS|.....; a|
|000025f0| 6e 64 20 72 65 74 75 72 | 6e 0d 09 0d 3b 20 54 68 |nd retur|n...; Th|
|00002600| 69 73 20 72 6f 75 74 69 | 6e 65 20 6d 75 73 74 20 |is routi|ne must |
|00002610| 62 65 20 63 61 6c 6c 65 | 64 20 77 68 65 6e 20 74 |be calle|d when t|
|00002620| 68 65 20 61 70 70 6c 69 | 63 61 74 69 6f 6e 20 71 |he appli|cation q|
|00002630| 75 69 74 73 20 6f 72 20 | 74 68 65 20 73 79 73 74 |uits or |the syst|
|00002640| 65 6d 20 77 69 6c 6c 0d | 3b 20 63 72 61 73 68 20 |em will.|; crash |
|00002650| 64 75 65 20 74 6f 20 74 | 68 65 20 69 6e 74 65 72 |due to t|he inter|
|00002660| 72 75 70 74 20 68 61 6e | 64 6c 69 6e 67 20 70 6f |rupt han|dling po|
|00002670| 69 6e 74 65 72 73 20 62 | 65 63 6f 6d 69 6e 67 20 |inters b|ecoming |
|00002680| 69 6e 76 61 6c 69 64 2e | 0d 0d 53 43 43 52 65 73 |invalid.|..SCCRes|
|00002690| 65 74 41 0d 09 4d 4f 56 | 45 09 09 23 61 43 74 6c |etA..MOV|E..#aCtl|
|000026a0| 2c 43 74 6c 4f 66 66 73 | 65 74 28 41 35 29 09 3b |,CtlOffs|et(A5).;|
|000026b0| 20 73 65 74 20 75 70 20 | 67 6c 6f 62 61 6c 73 20 | set up |globals |
|000026c0| 66 6f 72 20 43 68 6e 20 | 41 0d 09 4d 4f 56 45 09 |for Chn |A..MOVE.|
|000026d0| 09 23 61 44 61 74 61 2c | 44 61 74 61 4f 66 66 73 |.#aData,|DataOffs|
|000026e0| 65 74 28 41 35 29 0d 09 | 4d 4f 56 45 2e 42 09 09 |et(A5)..|MOVE.B..|
|000026f0| 23 25 31 30 30 30 30 30 | 30 30 2c 43 68 6e 52 65 |#%100000|00,ChnRe|
|00002700| 73 65 74 28 41 35 29 0d | 09 4d 4f 56 45 09 09 23 |set(A5).|.MOVE..#|
|00002710| 32 34 2c 52 78 49 6e 74 | 4f 66 66 73 65 74 28 41 |24,RxInt|Offset(A|
|00002720| 35 29 0d 09 4d 4f 56 45 | 09 09 23 31 36 2c 54 78 |5)..MOVE|..#16,Tx|
|00002730| 49 6e 74 4f 66 66 73 65 | 74 28 41 35 29 0d 09 4d |IntOffse|t(A5)..M|
|00002740| 4f 56 45 09 09 23 32 38 | 2c 53 70 65 63 52 65 63 |OVE..#28|,SpecRec|
|00002750| 43 6f 6e 64 28 41 35 29 | 0d 09 42 52 41 09 09 53 |Cond(A5)|..BRA..S|
|00002760| 43 43 52 65 73 65 74 0d | 0d 53 43 43 52 65 73 65 |CCReset.|.SCCRese|
|00002770| 74 42 0d 09 4d 4f 56 45 | 09 09 23 62 43 74 6c 2c |tB..MOVE|..#bCtl,|
|00002780| 43 74 6c 4f 66 66 73 65 | 74 28 41 35 29 09 3b 20 |CtlOffse|t(A5).; |
|00002790| 73 65 74 20 75 70 20 67 | 6c 6f 62 61 6c 73 20 66 |set up g|lobals f|
|000027a0| 6f 72 20 43 68 6e 20 42 | 0d 09 4d 4f 56 45 09 09 |or Chn B|..MOVE..|
|000027b0| 23 62 44 61 74 61 2c 44 | 61 74 61 4f 66 66 73 65 |#bData,D|ataOffse|
|000027c0| 74 28 41 35 29 0d 09 4d | 4f 56 45 2e 42 09 09 23 |t(A5)..M|OVE.B..#|
|000027d0| 25 30 31 30 30 30 30 30 | 30 2c 43 68 6e 52 65 73 |%0100000|0,ChnRes|
|000027e0| 65 74 28 41 35 29 0d 09 | 4d 4f 56 45 09 09 23 38 |et(A5)..|MOVE..#8|
|000027f0| 2c 52 78 49 6e 74 4f 66 | 66 73 65 74 28 41 35 29 |,RxIntOf|fset(A5)|
|00002800| 0d 09 4d 4f 56 45 09 09 | 23 30 2c 54 78 49 6e 74 |..MOVE..|#0,TxInt|
|00002810| 4f 66 66 73 65 74 28 41 | 35 29 0d 09 4d 4f 56 45 |Offset(A|5)..MOVE|
|00002820| 09 09 23 31 32 2c 53 70 | 65 63 52 65 63 43 6f 6e |..#12,Sp|ecRecCon|
|00002830| 64 28 41 35 29 0d 0d 53 | 43 43 52 65 73 65 74 0d |d(A5)..S|CCReset.|
|00002840| 09 4d 4f 56 45 09 09 53 | 52 2c 2d 28 53 50 29 09 |.MOVE..S|R,-(SP).|
|00002850| 09 3b 20 53 61 76 65 20 | 69 6e 74 65 72 72 75 70 |.; Save |interrup|
|00002860| 74 73 0d 09 4d 4f 56 45 | 2e 4c 09 09 41 30 2c 2d |ts..MOVE|.L..A0,-|
|00002870| 28 53 50 29 09 09 3b 20 | 53 61 76 65 20 72 65 67 |(SP)..; |Save reg|
|00002880| 69 73 74 65 72 0d 09 4f | 52 49 09 09 23 24 30 33 |ister..O|RI..#$03|
|00002890| 30 30 2c 53 52 09 09 3b | 20 44 69 73 61 62 6c 65 |00,SR..;| Disable|
|000028a0| 20 69 6e 74 65 72 72 75 | 70 74 73 0d 09 0d 09 4d | interru|pts....M|
|000028b0| 4f 56 45 2e 4c 09 09 23 | 73 63 63 57 42 61 73 65 |OVE.L..#|sccWBase|
|000028c0| 2c 41 30 09 09 3b 20 47 | 65 74 20 62 61 73 65 20 |,A0..; G|et base |
|000028d0| 57 72 69 74 65 20 61 64 | 64 72 65 73 73 0d 09 41 |Write ad|dress..A|
|000028e0| 44 44 09 09 43 74 6c 4f | 66 66 73 65 74 28 41 35 |DD..CtlO|ffset(A5|
|000028f0| 29 2c 41 30 09 3b 20 41 | 64 64 20 6f 66 66 73 65 |),A0.; A|dd offse|
|00002900| 74 20 66 6f 72 20 63 6f | 6e 74 72 6f 6c 0d 09 4d |t for co|ntrol..M|
|00002910| 4f 56 45 2e 42 09 09 23 | 39 2c 28 41 30 29 09 09 |OVE.B..#|9,(A0)..|
|00002920| 09 3b 20 70 6f 69 6e 74 | 65 72 20 66 6f 72 20 53 |.; point|er for S|
|00002930| 43 43 20 72 65 67 20 39 | 0d 09 4d 4f 56 45 2e 4c |CC reg 9|..MOVE.L|
|00002940| 09 09 28 53 50 29 2c 28 | 53 50 29 09 09 3b 20 44 |..(SP),(|SP)..; D|
|00002950| 65 6c 61 79 0d 09 4d 4f | 56 45 2e 42 09 09 43 68 |elay..MO|VE.B..Ch|
|00002960| 6e 52 65 73 65 74 28 41 | 35 29 2c 28 41 30 29 09 |nReset(A|5),(A0).|
|00002970| 3b 20 52 65 73 65 74 20 | 63 68 61 6e 6e 65 6c 0d |; Reset |channel.|
|00002980| 09 4d 4f 56 45 2e 4c 09 | 09 28 53 50 29 2c 28 53 |.MOVE.L.|.(SP),(S|
|00002990| 50 29 09 09 3b 20 44 65 | 6c 61 79 0d 09 4d 4f 56 |P)..; De|lay..MOV|
|000029a0| 45 2e 42 09 09 23 31 35 | 2c 28 41 30 29 09 09 3b |E.B..#15|,(A0)..;|
|000029b0| 20 70 6f 69 6e 74 65 72 | 20 66 6f 72 20 53 43 43 | pointer| for SCC|
|000029c0| 20 72 65 67 20 31 35 0d | 09 4d 4f 56 45 2e 4c 09 | reg 15.|.MOVE.L.|
|000029d0| 09 28 53 50 29 2c 28 53 | 50 29 09 09 3b 20 44 65 |.(SP),(S|P)..; De|
|000029e0| 6c 61 79 0d 09 4d 4f 56 | 45 2e 42 09 09 23 25 30 |lay..MOV|E.B..#%0|
|000029f0| 30 30 30 31 30 30 30 2c | 28 41 30 29 09 09 3b 20 |0001000,|(A0)..; |
|00002a00| 45 6e 61 62 6c 65 20 44 | 43 44 20 69 6e 74 0d 09 |Enable D|CD int..|
|00002a10| 4d 4f 56 45 2e 4c 09 09 | 28 53 50 29 2c 28 53 50 |MOVE.L..|(SP),(SP|
|00002a20| 29 09 09 3b 20 44 65 6c | 61 79 0d 09 4d 4f 56 45 |)..; Del|ay..MOVE|
|00002a30| 2e 42 09 09 23 30 2c 28 | 41 30 29 09 09 09 3b 20 |.B..#0,(|A0)...; |
|00002a40| 70 6f 69 6e 74 65 72 20 | 66 6f 72 20 53 43 43 20 |pointer |for SCC |
|00002a50| 72 65 67 20 30 0d 09 4d | 4f 56 45 2e 4c 09 09 28 |reg 0..M|OVE.L..(|
|00002a60| 53 50 29 2c 28 53 50 29 | 09 09 3b 20 44 65 6c 61 |SP),(SP)|..; Dela|
|00002a70| 79 0d 09 4d 4f 56 45 2e | 42 09 09 23 25 30 30 30 |y..MOVE.|B..#%000|
|00002a80| 31 30 30 30 30 2c 28 41 | 30 29 09 09 3b 20 52 65 |10000,(A|0)..; Re|
|00002a90| 73 65 74 20 45 58 54 2f | 53 54 41 54 55 53 0d 09 |set EXT/|STATUS..|
|00002aa0| 4d 4f 56 45 2e 4c 09 09 | 28 53 50 29 2c 28 53 50 |MOVE.L..|(SP),(SP|
|00002ab0| 29 09 09 3b 20 44 65 6c | 61 79 0d 09 4d 4f 56 45 |)..; Del|ay..MOVE|
|00002ac0| 2e 42 09 09 23 30 2c 28 | 41 30 29 09 09 09 3b 20 |.B..#0,(|A0)...; |
|00002ad0| 70 6f 69 6e 74 65 72 20 | 66 6f 72 20 53 43 43 20 |pointer |for SCC |
|00002ae0| 72 65 67 20 30 0d 09 4d | 4f 56 45 2e 4c 09 09 28 |reg 0..M|OVE.L..(|
|00002af0| 53 50 29 2c 28 53 50 29 | 09 09 3b 20 44 65 6c 61 |SP),(SP)|..; Dela|
|00002b00| 79 0d 09 4d 4f 56 45 2e | 42 09 09 23 25 30 30 30 |y..MOVE.|B..#%000|
|00002b10| 31 30 30 30 30 2c 28 41 | 30 29 09 09 3b 20 52 65 |10000,(A|0)..; Re|
|00002b20| 73 65 74 20 45 58 54 2f | 53 54 41 54 55 53 20 61 |set EXT/|STATUS a|
|00002b30| 67 61 69 6e 0d 09 4d 4f | 56 45 2e 4c 09 09 28 53 |gain..MO|VE.L..(S|
|00002b40| 50 29 2c 28 53 50 29 09 | 09 3b 20 44 65 6c 61 79 |P),(SP).|.; Delay|
|00002b50| 0d 09 4d 4f 56 45 2e 42 | 09 09 23 31 2c 28 41 30 |..MOVE.B|..#1,(A0|
|00002b60| 29 09 09 09 3b 20 70 6f | 69 6e 74 65 72 20 66 6f |)...; po|inter fo|
|00002b70| 72 20 53 43 43 20 72 65 | 67 20 31 0d 09 4d 4f 56 |r SCC re|g 1..MOV|
|00002b80| 45 2e 4c 09 09 28 53 50 | 29 2c 28 53 50 29 09 09 |E.L..(SP|),(SP)..|
|00002b90| 3b 20 44 65 6c 61 79 0d | 09 4d 4f 56 45 2e 42 09 |; Delay.|.MOVE.B.|
|00002ba0| 09 23 25 30 30 30 30 30 | 30 30 31 2c 28 41 30 29 |.#%00000|001,(A0)|
|00002bb0| 09 09 3b 20 45 6e 61 62 | 6c 65 20 6d 6f 75 73 65 |..; Enab|le mouse|
|00002bc0| 20 69 6e 74 65 72 72 75 | 70 74 73 0d 09 4d 4f 56 | interru|pts..MOV|
|00002bd0| 45 2e 4c 09 09 28 53 50 | 29 2c 28 53 50 29 09 09 |E.L..(SP|),(SP)..|
|00002be0| 3b 20 44 65 6c 61 79 0d | 09 4d 4f 56 45 2e 42 09 |; Delay.|.MOVE.B.|
|00002bf0| 09 23 39 2c 28 41 30 29 | 09 09 09 3b 20 70 6f 69 |.#9,(A0)|...; poi|
|00002c00| 6e 74 65 72 20 66 6f 72 | 20 53 43 43 20 72 65 67 |nter for| SCC reg|
|00002c10| 20 39 0d 09 4d 4f 56 45 | 2e 4c 09 09 28 53 50 29 | 9..MOVE|.L..(SP)|
|00002c20| 2c 28 53 50 29 09 09 3b | 20 44 65 6c 61 79 0d 09 |,(SP)..;| Delay..|
|00002c30| 4d 4f 56 45 2e 42 09 09 | 23 25 30 30 30 30 31 30 |MOVE.B..|#%000010|
|00002c40| 31 30 2c 28 41 30 29 09 | 09 3b 20 53 65 74 20 6d |10,(A0).|.; Set m|
|00002c50| 61 73 74 65 72 20 69 6e | 74 20 65 6e 61 62 6c 65 |aster in|t enable|
|00002c60| 0d 09 4d 4f 56 45 2e 4c | 09 09 28 53 50 29 2c 28 |..MOVE.L|..(SP),(|
|00002c70| 53 50 29 09 09 3b 20 44 | 65 6c 61 79 0d 09 0d 09 |SP)..; D|elay....|
|00002c80| 4d 4f 56 45 2e 4c 09 09 | 28 53 50 29 2b 2c 41 30 |MOVE.L..|(SP)+,A0|
|00002c90| 09 09 3b 20 52 65 73 74 | 6f 72 65 20 72 65 67 69 |..; Rest|ore regi|
|00002ca0| 73 74 65 72 0d 09 4d 4f | 56 45 09 09 28 53 50 29 |ster..MO|VE..(SP)|
|00002cb0| 2b 2c 53 52 09 09 3b 20 | 52 65 73 74 6f 72 65 20 |+,SR..; |Restore |
|00002cc0| 69 6e 74 65 72 72 75 70 | 74 73 0d 09 52 54 53 09 |interrup|ts..RTS.|
|00002cd0| 09 09 09 09 3b 20 61 6e | 64 20 72 65 74 75 72 6e |....; an|d return|
|00002ce0| 0d 0d 3b 20 74 68 69 73 | 20 69 73 20 74 68 65 20 |..; this| is the |
|00002cf0| 73 70 61 63 65 20 66 6f | 72 20 61 20 73 70 65 63 |space fo|r a spec|
|00002d00| 69 61 6c 20 63 6f 6e 64 | 69 74 69 6f 6e 20 69 6e |ial cond|ition in|
|00002d10| 74 65 72 72 75 70 74 20 | 72 6f 75 74 69 6e 65 0d |terrupt |routine.|
|00002d20| 0d 53 74 75 62 0d 09 52 | 54 53 0d 0d 0d 3b 2d 2d |.Stub..R|TS...;--|
|00002d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 4d 49 44 |--------|-----MID|
|00002d50| 49 20 47 6c 6f 62 61 6c | 73 2d 2d 2d 2d 2d 2d 2d |I Global|s-------|
|00002d60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 0d 43 74 6c 4f 66 |--------|-..CtlOf|
|00002d80| 66 73 65 74 09 09 44 53 | 2e 57 09 31 09 09 3b 20 |fset..DS|.W.1..; |
|00002d90| 6f 66 66 73 65 74 20 66 | 6f 72 20 63 68 61 6e 6e |offset f|or chann|
|00002da0| 65 6c 20 63 6f 6e 74 72 | 6f 6c 0d 44 61 74 61 4f |el contr|ol.DataO|
|00002db0| 66 66 73 65 74 09 09 44 | 53 2e 57 09 31 09 09 3b |ffset..D|S.W.1..;|
|00002dc0| 20 6f 66 66 73 65 74 20 | 66 6f 72 20 63 68 61 6e | offset |for chan|
|00002dd0| 6e 65 6c 20 64 61 74 61 | 0d 43 68 6e 52 65 73 65 |nel data|.ChnRese|
|00002de0| 74 09 09 44 53 2e 42 09 | 31 09 09 3b 20 53 43 43 |t..DS.B.|1..; SCC|
|00002df0| 20 63 68 61 6e 6e 65 6c | 20 72 65 73 65 74 20 73 | channel| reset s|
|00002e00| 65 6c 65 63 74 0d 52 78 | 49 6e 74 4f 66 66 73 65 |elect.Rx|IntOffse|
|00002e10| 74 09 09 44 53 2e 57 09 | 31 09 09 3b 20 6f 66 66 |t..DS.W.|1..; off|
|00002e20| 73 65 74 20 66 6f 72 20 | 64 69 73 70 61 74 63 68 |set for |dispatch|
|00002e30| 20 74 61 62 6c 65 0d 54 | 78 49 6e 74 4f 66 66 73 | table.T|xIntOffs|
|00002e40| 65 74 09 09 44 53 2e 57 | 09 31 09 09 3b 20 6f 66 |et..DS.W|.1..; of|
|00002e50| 66 73 65 74 20 66 6f 72 | 20 64 69 73 70 61 74 63 |fset for| dispatc|
|00002e60| 68 20 74 61 62 6c 65 0d | 53 70 65 63 52 65 63 43 |h table.|SpecRecC|
|00002e70| 6f 6e 64 09 09 44 53 2e | 57 09 31 09 09 3b 20 6f |ond..DS.|W.1..; o|
|00002e80| 66 66 73 65 74 20 66 6f | 72 20 64 69 73 70 61 74 |ffset fo|r dispat|
|00002e90| 63 68 20 74 61 62 6c 65 | 0d 0d 54 78 51 75 65 75 |ch table|..TxQueu|
|00002ea0| 65 09 09 09 44 53 2e 42 | 09 54 78 51 53 69 7a 65 |e...DS.B|.TxQSize|
|00002eb0| 09 09 3b 20 74 72 61 6e | 73 6d 69 74 74 65 64 20 |..; tran|smitted |
|00002ec0| 64 61 74 61 20 71 75 65 | 75 65 0d 54 78 51 45 6d |data que|ue.TxQEm|
|00002ed0| 70 74 79 09 09 44 53 2e | 42 09 31 09 09 3b 20 54 |pty..DS.|B.1..; T|
|00002ee0| 72 61 6e 73 6d 69 74 20 | 71 75 65 75 65 20 65 6d |ransmit |queue em|
|00002ef0| 70 74 79 20 66 6c 61 67 | 0d 54 78 42 79 74 65 49 |pty flag|.TxByteI|
|00002f00| 6e 09 09 44 53 2e 57 09 | 31 09 09 3b 20 69 6e 64 |n..DS.W.|1..; ind|
|00002f10| 65 78 20 74 6f 20 6e 65 | 78 74 20 63 65 6c 6c 20 |ex to ne|xt cell |
|00002f20| 69 6e 0d 54 78 42 79 74 | 65 4f 75 74 09 09 44 53 |in.TxByt|eOut..DS|
|00002f30| 2e 57 09 31 09 09 3b 20 | 69 6e 64 65 78 20 74 6f |.W.1..; |index to|
|00002f40| 20 6e 65 78 74 20 63 65 | 6c 6c 20 6f 75 74 0d 0d | next ce|ll out..|
|00002f50| 52 78 51 75 65 75 65 09 | 09 09 44 53 2e 42 09 52 |RxQueue.|..DS.B.R|
|00002f60| 78 51 53 69 7a 65 09 09 | 3b 20 72 65 63 65 69 76 |xQSize..|; receiv|
|00002f70| 65 64 20 64 61 74 61 20 | 71 75 65 75 65 0d 52 78 |ed data |queue.Rx|
|00002f80| 51 45 6d 70 74 79 09 09 | 44 53 2e 42 09 31 09 09 |QEmpty..|DS.B.1..|
|00002f90| 3b 20 72 65 63 65 69 76 | 65 20 71 75 65 75 65 20 |; receiv|e queue |
|00002fa0| 65 6d 70 74 79 20 66 6c | 61 67 0d 52 78 42 79 74 |empty fl|ag.RxByt|
|00002fb0| 65 49 6e 09 09 44 53 2e | 57 09 31 09 09 3b 20 69 |eIn..DS.|W.1..; i|
|00002fc0| 6e 64 65 78 20 74 6f 20 | 6e 65 78 74 20 63 65 6c |ndex to |next cel|
|00002fd0| 6c 20 69 6e 20 0d 52 78 | 42 79 74 65 4f 75 74 09 |l in .Rx|ByteOut.|
|00002fe0| 09 44 53 2e 57 09 31 09 | 09 3b 20 69 6e 64 65 78 |.DS.W.1.|.; index|
|00002ff0| 20 74 6f 20 6e 65 78 74 | 20 63 65 6c 6c 20 6f 75 | to next| cell ou|
|00003000| 74 20 0d 0d 45 6e 64 0d | 00 00 00 00 00 00 00 00 |t ..End.|........|
|00003010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003080| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 d4 |........|........|
|00003090| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030b0| 08 4d 49 44 49 43 6f 64 | 65 44 02 00 00 00 54 45 |.MIDICod|eD....TE|
|000030c0| 58 54 45 44 49 54 01 00 | 00 00 00 80 00 00 00 01 |XTEDIT..|........|
|000030d0| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 80 |..TEXTED|IT......|
|000030e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000030f0| 00 00 99 a7 13 cd 00 00 | 2f 88 00 00 01 ea 00 00 |........|/.......|
|00003100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003180| 00 00 00 0a 00 09 06 4d | 6f 6e 61 63 6f 00 00 00 |.......M|onaco...|
|00003190| 00 04 00 06 00 08 00 00 | 01 00 00 00 01 16 00 00 |........|........|
|000031a0| 00 16 00 00 00 d4 00 00 | cc 1c 00 7a 00 00 00 1c |........|...z....|
|000031b0| 00 46 00 01 45 46 4e 54 | 00 00 00 12 45 54 41 42 |.F..EFNT|....ETAB|
|000031c0| 00 00 00 1e 03 eb 00 00 | 00 00 00 00 00 01 6a 34 |........|......j4|
|000031d0| 03 ec 00 47 00 00 00 0e | 00 01 6a 00 46 4f 42 4a |...G....|..j.FOBJ|
|000031e0| ff ff ff ff 00 40 01 aa | 00 40 01 ac 00 40 01 ae |.....@..|.@...@..|
|000031f0| 00 40 01 b0 00 40 01 b2 | 00 40 01 b4 00 40 01 b6 |.@...@..|.@...@..|
|00003200| 00 40 01 b8 00 40 10 18 | 00 40 01 bc 00 40 01 be |.@...@..|.@...@..|
|00003210| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00003220| 00 40 01 46 4f 42 4a ff | ff ff ff 00 40 01 aa 00 |.@.FOBJ.|....@...|
|00003230| 40 01 ac 00 40 01 ae 00 | 40 01 b0 00 40 01 b2 00 |@...@...|@...@...|
|00003240| 40 01 b4 00 40 01 b6 00 | 40 01 b8 00 40 10 18 00 |@...@...|@...@...|
|00003250| 40 01 bc 00 40 01 be 00 | 40 01 be 00 40 01 be 00 |@...@...|@...@...|
|00003260| 40 01 be 00 40 01 be 00 | 40 01 00 00 00 00 00 00 |@...@...|@.......|
|00003270| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+